Hallo, Wie kann ich beim ATmega16 den Timer 0 benützen um ca. jede Sekunden einen Overflow zu erhalten? Ich habe /* enable overflow interrupt */ TIMSK |= (1 << TOIE0); /* start Timer 0 */ TCCR0 |= (1 << CS02) | (1 << CS00); gesetzt, doch damit gehts viel zu schnell.
irgendwo sind Grenzen :-) 1/fosz*1024 (Vorteiler)*256 (TCNT0), mehr geht nicht direkt mit dem Timer0. Also in der Timer-ISR einen Zähler incrementieren, damit kann man beliebig lange Zeiten erzeugen. Ok, beliebig nicht, irgendwann ist der RAM an Ende :-)
Achso, also wenn der Prscaler 1024 ist, dann gäbe das ca. alle 16ms einen Interrupt. Also, wenn ich einen counter 63 mal inkrementiere in der ISR, sollte ich auf ca. 1 Sekunde kommen, richtig?
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.