Timer richtig einstellen

Gast #1835398
Lesenswert?
• ▲
▼
Hallo,

ich nutze einen 14,745600MHz Clock und möchte mit einem 16 Bit Timer 
einen Interrupt JEDE MILLISEKUNDE auslösen. Wie muss ich den Prescaler 
und das Compare-Register richtig einstellen?!!

Ich glaub ich hab nen dicken Knoten in meinem Gehirn, da ich einfach 
nicht drauf komme, wie ich den Timer einstellen muss.
Ich tu nun schon fast 2 Stunden rum und habe auch schon den AVR Timer 
Calculator 
(http://frank.circleofcurrent.com/cache/avrtimercalc.htm)angeschaut, 
aber ich komm einfach nicht drauf.

Darum bitte ich euch, helft mir weiter!!!
#1835424
Lesenswert?
• ▲
▼
Der Oszillator hat genau 14745,6 Takte pro Millisekunde.

Stellst du den Timer also auf Prescaler 1 und Compare auf 14745, dann 
erhälst du alle 14745+1 Takte einen Interrupt - also alle 0,9997 ms 
einen Interrupt.

Allgemein: Rechne aus, wieviele Takte von einem zum nächsten Interrupt 
vergehen sollen. Diese Zahl teilst du dann durch die möglichen 
Prescaler-Einstellungen, ziehst 1 ab und erhälst so den Wert für das 
Compare-Register für jede mögliche Prescaler-Einstellung. Natürlich wird 
nicht jede Einstellung funktionieren, weil z.B. der Wert für das 
Compare-Register nicht in 16bit passt oder das Ergebnis der Berechnung 
keine ganze Zahl (und Rundung vielleicht einen zu großen Fehler 
verursacht) ist.

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