Bei dem ersten Projekt (Digitaluhr) kommt man um eine RTC nicht herum.
Zwei wesentlich Gründe sprechen einfach dafür. Erstens die Genauigkeit
und die unproblematische Anbindung ohne unnütze Softwareklimmzüge.
Zweitens ausgehend von der schon angesprochenen RTC MAX6902, der
verschwindend geringe Stromverbrauch, der gerade bei einem kurzen
Stromausfall zum tragen kommt. Wobei nur ein Stützkondensator (z.B. 0.5
F) den MAX6902 für Stunden mit der benötigten Spannung versorgt.
Das zweite Projekt, ich nenne es einfach Stoppuhr ist am besten mit
einem Timer (8 oder 16 Bit egal) der in jedem MC eingebaut ist, zu
realisieren. Dieser löst z.B. bei einem Nulldurchlauf einen Interrupt
auf der dann eine globale Variable einfach um eins addiert.
#default timeStop 100; // 100 Interrupte bis zum Stop
extern unsigned int timeCount;
...
unsigned int timeCount=0; // 2Byte
...
timeCount++; // Interrupt erfolgte
if (timeCount >= timeStop) { timeCount=0; /* andere Aktionen */}
...
Dieser Wert kann den z.B. auf dem Diplay ausgegeben werden. Der
Tastenruck startet bzw. stop den Interrupt. der Vorteil einer
Interuptsteuerung ist, dass der MC in der Zeit des zählens für andere
Aufgaben zur Verfügung steht und nur kurzzeitig durch die
Interruptfunktion unterbrochen wird.
Bis dann Jens (www.SynaSys.de)