Forum: Mikrocontroller und Digitale Elektronik Led toggle mit timer


von gast (Gast)


Angehängte Dateien:

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?

von asm (Gast)


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.

von Gast (Gast)


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.

von gast (Gast)


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);
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.