Titelbild Mikrocontroller

12.7. Zählereinheit1

Der Hauptteil des Timer/Counter1 ist die programmierbare 16-bit bidirektionale Zählereinheit. Das Blockschaltbild zeigt die Zählereinheit mit ihrer Umgebung.
Blockschaltbild Timer1

Blockschaltbild des Timer1


Beschreibung der internen Signale:
count Inkrementiert oder dekrementiert TCNT1 um 1
direction Auswahl zwischen Inkrement und Dekrement
clear Löscht TCNT1 (alle Bits Null)
clkT1 Timer/Counter Takt
TOP Signalisiert, dass TCNT1 den Maximalwert erreicht hat
BOTTOM Signalisiert, dass TCNT1 den Minimalwert (Null) erreicht hat

Der 16-bit Zähler ist in zwei 8-bit I/O-Speicher aufgeteilt: Counter high (TCNT1H) enthält die oberen acht Bits des Zählers, Counter low (TCNT1L) enthält die unteren acht Bits des Zählers. Auf das TCNT1H Register kann die CPU nur indirekt, nämlich über das temporäre Register TEMP zugreifen. Das temporäre Register wird mit dem Wert von TCNT1H gefüllt, wenn TCNT1L gelesen wird und das TCNT1H Register wird mit dem Wert des temporären Registers gefüllt, wenn TCNT1L geschrieben wird. Dadurch ist es für die CPU möglich, alle 16 Bits des Zählers innerhalb des gleichen Taktzyklus über einen 8-bit Datenbus zu verändern. Es ist wichtig zu wissen, dass es beim Beschreiben des TCNT1 Registers während der Zähler läuft, spezielle Fälle gibt, in denen das Ergebnis unvorhersehbar wird. Diese Fälle werden an den entsprechenden Stellen erläutert.

Abhängig vom gewählten Arbeitsmodus wird der Zähler mit Takt des Timer Clock clkT1 gelöscht, inkrementiert oder dekrementiert. Der Takt clkT1 kann durch eine externe oder interne Quelle erzeugt werden, die Einstellung erfolgt mit den Clock Select Bits CS12 bis CS10. Wenn keine Taktquelle ausgewählt ist CS12 bis CS10 =000, dann wird der Zähler gestoppt. Auf den Wert von TCNT1 kann aber jederzeit zugegriffen werden, unabhängig davon, ob der Takt clkT1 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 (WGM13 bis WGM10) in den TCCR1A und TCCR1B Registern bestimmt. Es besteht ein fester Zusammenhang zwischen der Arbeitsweise des Zählers und der erzeugten Wellenform am Output Compare Ausgang OC1x.

Das Timer Counter Overflow Flag (TOV1) wird den Einstellungen der WGM1x Bits entsprechend gesetzt. Es kann genutzt werden, um einen Interrupt auszulösen.
Impressum