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
Gast
#2274456
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).
Gast
#2274478
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.
Vielen Dank! Die Leitung war irgendwie zu lang :-)
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.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.