Problem mit Timer2 und Uhrequarz

Gast #165721
Lesenswert?

Hallo!
Mein C Code schaut so aus: ( Verwendet wird ein ATMega8L8 )

#include <avr/io.h>
#include <avr/signal.h>
#include <avr/interrupt.h>

uint8_t foo;

SIGNAL (SIG_OUTPUT_COMPARE2A)
{
        foo++;
        if ( foo == 255 )
               {PORTB--;foo=0;}
        if ( PORTB == 0 )
               PORTB = 0xff;
}

int main(void){
        ASSR  |= (1<<AS2);
        TCCR2 |= (1<<CS22);
        TIMSK |= (1<<OCIE2);
        TIFR  |= (1<<OCF2);
        OCR2 = 230;
        TCNT2  = 0x00;
        DDRB=0xff;
        PORTB=0xff;
        foo=0;
        sei();

}

An TOSC1/2 hängt ein 0,032768MhZ Uhrenquarz und CKLOPT Fuse ist
aktiviert. Bewirken soll der Code, dass von PORTB nach einer gewissen
Zeit immer 1 abgezogen wird. Das Uhrenquarz ist wie in Fig11 im atmega
8 Datenblatt angeschlossen. Als System Clock verwende ich den
Calibrated Internal RC Oscillator mit 4MhZ. Geb ich der Schaltung strom
funktioniert auch alles, aber es funktioniert auch, wenn das Uhrenquarz
nicht angeschlossen ist :-) . Deshalb denk ich, dass die Timer/Couter
Clock Source des Timer2 nicht das Uhrenquarz ist. Ich hab schon im
Datenblatt nachgeschaut ob ich irgendwelche Register falsch gesetzt
habe, habe aber nichts gefunden.

Danke im Voraus!

Ralf

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren