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?
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.