ATmega16 Timer0 CTC Mode

Sourcecode Beispiel um auf dem ATmega16 den Timer0 im CTC-Mode zu betreiben.


Beschreibung

Am Ausgang PB3 wird ein Rechtecksignal erzeugt. Der Prescaler wird verwendet. Mit dem Wert im Register OCR0 wird die Timerfrequenz auf 4.002Hz eingestellt. Der Timer setzt sich zurück, wenn der den Wert von COR0 erreicht. Der Ausgang PB3 (OC0) wird be jedem Comparematch getoggelt. Dadurch entsteht an OC0 eine Frequenz von 2.001Hz.

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 C-Sourcefile mit ASCII-Schema: C-Sourcefile mit ACII-Schema

Signalplot

ATMega16 Timer0 CTC Plot

Gelb: Rechteck Signal an PB3