Programmierung der AVR-Microcontroller mit C - UlrichRadig.de
Programmierung der AVR-Microcontroller mit C - UlrichRadig.de
Programmierung der AVR-Microcontroller mit C - UlrichRadig.de
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Der 8-Bit Timer wird über folgen<strong>de</strong> Register angesprochen:<br />
TCCR0 Timer/Counter Control Register Timer 0<br />
In diesem Register stellen wir ein, wie wir <strong>de</strong>n Timer/Counter verwen<strong>de</strong>n möchten.<br />
Das Register ist wie folgt aufgebaut:<br />
TCNT0<br />
Bit 7 6 5 4 3 2 1 0<br />
Name - - - - - CS02 CS01 CS00<br />
R/W R R R R R R/W R/W R/W<br />
Initialwert 0 0 0 0 0 0 0 0<br />
CS02<br />
CS01<br />
CS00<br />
Clock Select Bits<br />
Diese 3 Bits bestimmen die Quelle für <strong>de</strong>n Timer/Counter:<br />
CS02 CS01 CS00 Resultat<br />
0 0 0 Stopp, Der Timer/Counter wird angehalten.<br />
0 0 1 CPU-Takt<br />
0 1 0 CPU-Takt / 8<br />
0 1 1 CPU-Takt / 64<br />
1 0 0 CPU-Takt / 256<br />
1 0 1 CPU-Takt / 1024<br />
1 1 0 Externer Pin TO, fallen<strong>de</strong> Flanke<br />
1 1 1 Externer Pin TO, steigen<strong>de</strong> Flanke<br />
Wenn als Quelle <strong><strong>de</strong>r</strong> externe Pin TO verwen<strong>de</strong>t wird, so wird ein<br />
Flankenwechsel auch erkannt, wenn <strong><strong>de</strong>r</strong> Pin TO als Ausgang geschaltet ist.<br />
Timer/Counter Daten Register Timer 0<br />
Dieses ist als 8-Bit Aufwärtszähler <strong>mit</strong> Schreib- und Lesezugriff realisiert. Wenn <strong><strong>de</strong>r</strong><br />
Zähler <strong>de</strong>n Wert 255 erreicht hat beginnt er beim nächsten Zyklus wie<strong><strong>de</strong>r</strong> bei 0.<br />
Bit 7 6 5 4 3 2 1 0<br />
Name MSB LSB<br />
R/W R/W R/W R/W R/W R/W R/W R/W R/W<br />
Initialwert 0 0 0 0 0 0 0 0<br />
Um nun also <strong>de</strong>n Timer0 in Betrieb zu setzen und ihn <strong>mit</strong> einer Frequenz von 1/64-tel <strong>de</strong>s CPU-<br />
Taktes zählen zu lassen schreiben wir die folgen<strong>de</strong> Befehlszeile:<br />
outp ((1