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