Forum: Compiler & IDEs Welche Zeit ist das?


von Achim S. (achims)


Lesenswert?

Hallo
habe hier einen Timer für 16 MHz. Habe ihn gedacht für 1 ms. Habe aber 
mir 10 ms notiert. Habe dann versucht es auszurechnen und bin total 
durcheinander gekommen. Jetzt frage ich lieber euch.
1
void timer2()      // Timer 10ms 
2
  {  TCNT2 = 0;
3
  OCR2=249;
4
  TCCR2=(1<<WGM21)|(1<<CS21)|(1<<CS20);  
5
  TIMSK |= (1<<OCIE2);  }

ist dieser für 10ms oder für 1ms? Falls er für 10ms ist, was muss ich 
noch machen für 1ms. Sorry, black out.
achim

von Uwe (Gast)


Lesenswert?

Also du hast da 16E6^-1s  32  249 = 498µs bis Compare match. Kannst du 
doch selber ausrechnen !

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Vielleicht schreibst du ja noch den Controllertyp dazu?

ATmega8: CS20|CS21 heißt Prescaler 8, der Timer läuft also mit 2 MHz.
Wenn man diese durch 250 teilt (Zählbereich 0 bis 249), „tickt“ der
Timer alle 125 µs (8 kHz).  Damit ist für einen 8-bit-Timer aber das
Ende der Fahnenstange erreicht bei diesem Prescaler.

Wenn du den Prescaler auf 64 setzt (CS22), dann läuft er mit 1 kHz.

von Timmo H. (masterfx)


Lesenswert?

Jörg Wunsch schrieb:
> Vielleicht schreibst du ja noch den Controllertyp dazu?
>
> ATmega8: CS20|CS21 heißt Prescaler 8, der Timer läuft also mit 2 MHz.
Heisst eher Prescaler von 32

von Achim S. (achims)


Lesenswert?

Kein Problem, ist ein Atmega 128 und läuft mit 16 MHz.
Sorry, beim rechnen hatte ich beide ergebnisse bekommen, habe mich 
verrechnet und bin durch einander gekommen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Timmo H. schrieb:

>> ATmega8: CS20|CS21 heißt Prescaler 8, der Timer läuft also mit 2 MHz.
> Heisst eher Prescaler von 32

Stimmt.  Beim ATmega128 jedoch bedeutet CS20|CS21 einen Prescaler
von 64.  Damit läuft er dann mit obigem Code in der Tat mit 1 kHz.

von Achim S. (achims)


Lesenswert?

Danke dir für deine Antwort, 1 kHz sind 1 ms, bleibt nur die Frage warum 
ish 10 ms hingeschrieben habe. Konnte wohl wieder die Tasten nicht 
richtig bedienen.
achim

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.