Der Hauptteil des Timer/Counter2 ist die programmierbare 8-bit bidirektionale Zählereinheit. Das Blockschaltbild zeigt die Zählereinheit mit ihrer Umgebung.
Zählereinheit Timer 2
Beschreibung der internen Signale:
count |
Inkrementiert oder dekrementiert TCNT2 um 1 |
direction |
Auswahl zwischen Inkrement und Dekrement |
clear |
Löscht TCNT2 (alle Bits Null) |
clkT2 |
Timer/Counter Takt |
TOP |
Signalisiert, dass TCNT2 den Maximalwert erreicht hat |
BOTTOM |
Signalisiert, dass TCNT2 den Minimalwert (Null) erreicht hat |
Abhängig vom gewählten Arbeitsmodus wird der Zähler mit Takt des Timer Clock clkT2 gelöscht, inkrementiert oder dekrementiert. Der Takt clkT2 kann durch eine externe oder interne Quelle erzeugt werden, die Einstellung erfolgt mit den Clock Select Bits CS22 bis CS20. Wenn keine Taktquelle ausgewählt ist (CS22 bis CS20 =000), dann wird der Zähler gestoppt. Auf den Wert von TCNT2 kann aber jederzeit zugegriffen werden, unabhängig davon, ob der Takt clkT2 vorhanden ist oder nicht. Das Beschreiben des Zählers durch die CPU hat Vorrang vor allen Lösch- und Zähl-Operationen des Zählers.
Eine Zählsequenz wird durch die Einstellungen des Waveform Generation Mode Bits (WGM21 bis WGM20) in dem TCCR2 Register bestimmt. Es besteht ein fester Zusammenhang zwischen der Arbeitsweise des Zählers und der erzeugten Wellenform am Output Compare Ausgang OC2.
Das Timer Counter Overflow Flag (TOV2) wird den Einstellungen der WGM2x Bits entsprechend gesetzt. Es kann genutzt werden, um einen Interrupt auszulösen.