ATmega32 Timer0 im CTC Mode

Der ATmega32 Timer0 arbeitet in diesem Codebeispiel im CTC-Mode.


Beschreibung

dieses Programm generiert am Ausgang PB3 (OC0) ein Rechtecksignal mit einer Frequenz von 2.01 Herz. Der Prescaler hat den Werrt 64. Im ORC0 Register steht en Wert, der den Timer in einer Frequenz von 4.02 Herz im Comparematch zurücksetzt. Dabei wird jedes mal der Ausgang OC0 getoggelt und ein Signal mit der Frequenz von 2.01Hz entsteht.

C Sourcecode

#include <avr/io.h>

int main(void)
{

    DDRB = 0x08;                         // Setup PB3 as output

    OCR0 = 243;                          // Set Timerfrequency to 4.002Hz

    TCCR0 |= (1<<CS02)|(1<<CS00)         // Start timer0 with prescaler 64
             |(1<<WGM01)|(1<<COM00);     // CTC mode, toggle OC0 on compare match

    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

Signalplot

ATMega32 Timer0 CTC Plot

Gelb: 2.01 Hz Signal an PB3 (OC3)