• Keine Ergebnisse gefunden

TIMER-Funktionen

N/A
N/A
Protected

Academic year: 2022

Aktie "TIMER-Funktionen "

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

TIMER-Funktionen

Grundlagen:

- TIMER ist ein Zähler der ein Zählregister mit Taktfrequenz hochzählt

- bei Überlauf wird eine Flag setzt

- bei TIMER0 ist das Zählregister TCNT0 8 Bit groß

- bei TIMER1 ist das Zählregister TCNT1 16 Bit groß

Interner Takt:

- normaler Systemtakt liegt bei 16MHz - kann mittels Fuse-Bits reduziert werden (DB S. 25)

- mögliche Werte: 1MHz, 2MHz, 4MHz, 8MHz

- Fuse-Bits können nicht mittels Software (zur Laufzeit) verändert werden

- ACHTUNG: verändert den gesamten Systemtakt

Externer Takt:

- wird mit externer Hardware zwischen Pins XTAL1 und XTAL2 gesteuert - grober Frequenzbereich muss vorher per Fuse-Bits definiert werden (s.o.)

- ACHTUNG: gesamter Systemtakt wird auch hier verändert

Abb. 1: Takt-Schaltung mit Quarz (es MUSS gelten C1 = C2)

Abb. 2: Takt-Schaltung mit R-C-Glied

(2)

Overflow-Interrupt:

- wird in TIMSK aktiviert (DB S. 82)

- wird ausgelöst wenn in TIMSK aktiviert und Zählregister überlauft - Interrupt-Vektor heißt TIMER0_OVF_vect bzw. TIMER1_OVF_vect

- für alle Interrupt-Modi muss die Interrupt-Bibliothek eingefügt werden und einmal die Funktion sei() ausgefürht werden

CTC-Interupt: (nur TIMER1)

- wird in TIMSK aktiviert (DB S. 82)

- vergleicht ständig das Zählregister mit dem manuel einstellbaren Vergleichsregister OCR1 - wenn Vergleich positiv dann wird Interrupt ausgelöst

- ACHTUNG: nur wenn CTC1 in TCCR1B (DB S. 110) gesetzt ist wird TCNT1 bei positiven Vergleich auf 0 zurückgesetzt sonst zählt der TIMER weiter bis Überlauf

- Interrupt-Vektor heißt TIMER1_COMPA_vect

Prescaler:

- zu Deutsch: Vorteiler

- teilt den Takt mit dem der TIMER zählt in die angegebenen festen Werte

- beeinflusst nicht den allgemeinen Systemtakt nur den Takt für den jeweiligen TIMER - 1, 1/8, 1/64, 1/256, 1/1024 Systemtakt möglich

- wird im TCCR0 bzw. TCCR1B aktiviert (DB S. 80 bzw. 110)

- um einen TIMER generell zu aktivieren MUSS zumindest der Prescaler mit 1 gesetzt werden - zur Berechnung der Zeit zwischen zwei Überläufen gilt folgende Formel:

Referenzen

ÄHNLICHE DOKUMENTE

Ressourcen / rechte Maus / Ressourcensymbole ID_UHR

Counting cannot resume until one or two bytes of preload data (initial value) are written to the load register. The state of the mode control register's RL bits determines

Timer, Robin Pieper 3 ProLab SS2013

Zum Dimmen von LEDs. 

– vergleicht ständig Zählregister mit einem vorgegebenen Wert – wenn Vergleich positiv dann wird eine Flag gesetzt. – für CTC-Interrupt muss im TIMSK-Register

• Während NE555 bipolar ist, gibt es auch CMOS versionen C555.. • CMOS versionen

- 1971 von US-Firma Signetics auf den Markt gebracht, entworfen von Hans Camenzind - Ursprünglich auf bipolarer Basis, später um CMOS-Version erweitert.. - Bis heute weltweit

• Timer nötig z ur Implementierung eines