Kurzzeit Timer

von Ralf Beesner
Das Programm startet dann den Hardware-Timer des ATtiny13. Da die Timer-Interrupts aktiviert sind, ruft das Programm bei jedem Interrupt die Routine OnTimer0 auf - zwanzig mal pro Sekunde. Bei jedem zwanzigsten Interrupt wird die grüne LED 2 für die Dauer eines Interrupts eingeschaltet; sie blitzt also im Sekundentakt kurz auf. Ist die Zeit verstrichen, blinkt die rote LED 1 in schneller Folge, ausserdem liegt ein Alarmton an PortB.4. Der Alarm wird durch Drücken des linken Tasters beendet und der Controller geht wieder in den Tiefschlaf.
Zum Einstellen der Zeit muss man beide Taster drücken, erst den linken, dann zusätzlich den rechten. Der Controller findet dann unmittelbar nach dem Aufwachen den gedrückten linken Taster vor und verzweigt in die Einstellroutine. Hier wird im 0,75-Sekunden-Takt die Weckzeit um jeweils eine Minute erhöht, bis man die rechte Taste loslässt. Solange der Controller an der Stromversorgung hängt, bleibt die eingestellte Weckzeit gespeichert. Eine Batterie müsste jahrelang halten, da im Tiefschlaf nur 20 µA (also 180 mAh pro Jahr) verbraucht werden. Ist der Brownout des Controllers deaktiviert, sind es sogar nur 1 µA. Während der Zeitmessung verbraucht sie unter 1 mA, bei Alarm ca. 3-4 mA.
Wichtig für einen niedrigen Stromverbrauch ist, dass die Programmierschaltung, die etwa 1,2 mA "frisst", nicht mit Spannung versorgt wird. Die Batteriespannung darf also nur an den mit "U" gekennzeichneten Pin und an "-" angelegt werden.
Sparrow APP

share.cheepit.net
Quelle: