Led toggle mit timer

Gast #955689
Lesenswert?

hallo,
ich benutze ein Timer um ein Led ein/auszuschalten. Das toggle 
funktioniert aber die Zeit stimmt überhaupt nicht, weil das Led blinkt 
schneller als 1 Sekunde, obwohl ich die Rechnung mit 4 Sekunde gemacht 
habe. Stimmt die Rechnung des Timers?
Angehängte Dateien:
Gast #955709
Lesenswert?

Hallo,

bei einem 5Mhz quarz und 1024erPS
hast du ca. 4900 Impulse pro sekunde, die den timer inkrementieren!

Wenn du einen 16Bit Timer nutzt, solltest du einen Startwert von 
2^16-4900 nutzen.
Bei jedem Timerüberlauf kannst du dann in einer Interruptroutine das Bit 
toggeln und erneut den startwertladen.
Gast #955726
Lesenswert?

Hi,

wenn du schon das OCR0A verwendest, dann soltest du auch den 
CTC-Interrupt des Timers nutzen und nicht den Overflow. Wenn ich mich 
jetzt nicht verrechnet habe müssten die 19532 ca. 4 Sek. entsprechen.
Gast #955891
Lesenswert?

Hallo,
das ISR( TIMER1_COMPA_vect) oder ISR (SIG_OUTPUT_COMPARE1A)
reagiert nicht

void Timer_Init()
{

         TCCR0A = (1<<CS02)| (0<<CS01)|(1<<CS00); /*1024 prescaler*/
         OCR0A=19532; //4s
         TCNT0=77;
         TIMSK0 |= (1<<OCIE0A);
}

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