I would like to create a clock or stopwatch, which simply counts how many seconds elapsed, possibly very precisely. And displaying the number on LCD.
I use ATmega168 with 16MHz crystal, I use watchdog every second to check whether millis() returns something greater by 1000 than previous millis(). Basically everything works, even LCD.
Now I would like to prolong battery life, i.e. I would like to go into sleep mode between the changes. The problem is, that when I enter sleep mode clock millis() stop to work correctly and even LCD library doesn't like it.
What I was thinking was that I could somewhere  add 32kHz crystal, pre-scale it so that an interrupt fires at 1Hz rate only,  attach a handler to the interrupt which would update the display and go to sleep again. But that's just my theory! Would it work? Do you have any suggestions?
 Where should I add the crystal? Which pin? Will it wake up the ATmega from sleep?
 Is it even possible to pre-scale the other clock input? Or do I have to count somewhere up to 32768 and then update and reset to 0?
 how to even run a routine on external event?
Btw, I have the sleep mode code from here:
But other suggestion are very welcomed, too!