ATmega32 Timer1 CTC Mode
Im CTC Mode zählt der Timer1 des ATmega32 eine vorgegebene Anzahl Clockzyklen ab. Anschliessend setzt er sich zurück.
Beschreibung
In diesem selbstständig lauffähigen Code generiert der Timer 1 im CTC Mode ein 1Hz Signal an OC1A. Mit einem clock von 8MHz, einem
Prescaler von 1024 und einem TOP Zählerwert von 3906 setzt sich der Timer zwei mal pro Sekunde zurück. Jedes
Mal wird OC1A getoggelt. |
Please visit: the four |
C Sourcecode
#include <avr/io.h>
int main(void)
{
DDRD = 0x20; // Setup PD5 as output
OCR1A = 3906; // F_Timer = F_clk/Prescaler
// = 8'000'000 / 1024 = 7812.5
// F_PD5 = F_Timer/ 2 / OCR1A
// = 7812.5 / 2 / 3906 = 1.00006Hz
TCCR1A = (1<<COM1A0); // CTC mode, toggle OC1A on compare match
TCCR1B = (1<<CS12)|(1<<CS10) // Start Timer1 with prescaler 1024
|(1<<WGM12);
for(;;); // Endless loop
// main() will never be left
return 0; // This line will never be executed
}
Download lauffähiges C-File mit ASCII-Schema: Downloadlink
Signalplots
Gelb: Digitales Ausgangssignal (OC1A) PD5
|