I'm working on designing the hardware for a clock circuit. I'll be using an Atmel Mega series chip for this as the clock does some other things besides be a clock.
I'm working on the display component and I'm having a dilemma. Which of these methods is better?
1) Use a 4 digit display with 4 select lines and 8 display lines. You select the digit you want to display and send the right SSD code on the 8 lines. You then cycle through the digits in your program and display them one at a time. Doing this quickly gives the illusion that they are all on at the same time and uses less power and less wiring than the next method.
2) Use a 4 digit display with 8 input lines for each digit. Serially clock data out from one output pin on the controller into something like a 74HC595 shift register that updates once every minute.
My concern is writing the program for this. The clock has to keep time, display time, remember alarms, check for alarms (once a minute), accept interrupts from several buttons, as well as work with a wireless interface and play mp3s somehow. (The media functionality may be outsourced to another dedicated DSP or AVR).
In the first approach, I have to update the display very frequently. This would probably be the main program (as well as counting ticks for the time) while the rest of the functionality is configured using interrupts.
In the second approach, there's less updating and the AVR cpu time can be used for other things. What do you guys think?