Titelbild Mikrocontroller

14.2. Interrupts und Events

Der RTC kann einen Interrupt oder ein Event auslösen, wenn der Zähler (CNT) gleich dem compare Register (COMP) ist oder wenn der Zähler gleich dem Wert im Perioden Register (PER) ist (overflow). Der Interrupt bzw. das Event wird jeweils mit dem nächsten Takt nach Erreichen der Gleichheit ausgelöst. Der overflow setzt zusätzlich den Zähler wieder auf Null.

Die asynchrone Arbeitsweise hat bei sehr kleinen Werten im PER Register folgende Auswirkungen: Ist das PER Register Null, wird nur bei jedem dritten overflow oder compare ein Event ausgelöst. Ist das PER Register Eins, wird nur bei jedem zweiten overflow oder compare ein Event ausgelöst. Erst bei Werten von 2 oder mehr im PER Register wird bei jedem overflow oder compare ein Event ausgelöst.

Bei den 16 Bit Registern ist der Besondere Zugriff zu beachten: immer erst das low Byte schreiben bzw. lesen.

Codebeispiel RTC Xmega

Codebeispiel RTC Xmega



Das unterste Bit von Port B blinkt in diesem Beispiel mit einer Frequenz von 2 Hz (Periodendauer 500ms). Herleitung: Der 16 Bit Zähler hat am Eingang einen Takt von 1024 Hz. Die ersten 8 Bit teilen durch 256, so dass die oberen 8 Bit quasi mit 1024Hz/256 = 4Hz getaktet werden. 4Hz bedeutet 4x an und 4x aus pro Sekunde. Mit jeder positiven Flanke wird das erste der oberen 8 Bit ein- oder ausgeschaltet (also 2x ein und 2x aus). Das entspricht einer weiteren Teilung durch 2 und daraus ergeben sich die 2Hz.

RTC Beispiel

RTC Beispiel


Impressum