Forum: Mikrocontroller und Digitale Elektronik [16f88] TMR1-Frage


von Thomas M. (xt-fahrer)


Lesenswert?

Hallo,
ich stehe gerade etwas auf dem Schlauch: Welchen Wert hat TMR1 bzw. 
TMR1H nach einer Dauer von 0,5 Sekunden bei 8 MHz Quarzfrequenz und 1:4 
prescaler? Ich komme irgendwie auf 250, aber das erscheint mir zu wenig

Gruß
Tom

von Bernd Rüter (Gast)


Lesenswert?

Na,

8 MHz Quarz = 2 MHz Arbeitsfrequenz

1:4-Prescaler macht dann 500.000 Hz

1/2 Sekunde sind dann 250000 im Zähler, der dafür aber zu klein ist 
(kann nur 65535).

von Sascha (Gast)


Lesenswert?

Eigentlich ganz einfach:
- 8MHz Takt bedeuten 500ns bzw. 0,5µs Befehlsdauer.
- 1:4 Prescaler bedeutet dass nur jeder 4 Impuls durchkommt, also alle 
2µs.
- 0,5s sind 250000 mal 2µs, also theoretisch hat TMR1 bis 250000 
gezählt.
- Da er aber nur bis 2^16 kommt, hat er 250000 mod 65536 = 53392, also 
0xD090 gezählt und ist währenddessen 3x übergelaufen.

von Thomas M. (xt-fahrer)


Lesenswert?

Vielen Dank!
Die Leitung war irgendwie zu lang :-)

von Lehrmann M. (ubimbo)


Lesenswert?

Bernd Rüter schrieb:
> 1/2 Sekunde sind dann 250000 im Zähler, der dafür aber zu klein ist
> (kann nur 65535).

Sprich du hast grob 3,8.... Überläufe die du mit dem Interrupt auswerten 
kannst. Da würde ich dann auf 8 Bit umsteigen wenn es der Setup erlaubt, 
auch wenn das auf den ersten Blick ineffizient scheinen mag.

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.