Forum: Mikrocontroller und Digitale Elektronik [pic 16f88] Timerfrage/problem


von Thomas M. (xt-fahrer)


Angehängte Dateien:

Lesenswert?

Hallo,
ich brauche eure Hilfe in einer Timerfrage , mal wieder :->
Folgendes Problem: ich messe den zeitlichen Abstand zwischen einem 
Signal an RB0, wodurch der externe Interrupt ausgelöst wird, und RB4, wo 
die ISR bei Interrupt-on-change abgearbeitet wird. Die angehängte Bild 
ist ein screenshot vom verwendeten Stimulus.
Verwendet wird dazu TMR2.
Wenn das Signal an RB4 zu lange nicht kommt, läuft TMR2 über, und TMR2IF 
wird gesetzt, durch welches ich dann den Überlauf auswerten kann.
Konfiguration wie folgt:
In der T2CON: TMR2 enable, prescaler 1:4, postscaler 1:16
Quarzfrequenz 8 MHz
PR2 mit 50 initialisiert

Mit dem Postscaler strecke ich ja lediglich die Zeit bis TMR2IF gesetzt 
wird, TMR2 läuft wesentlich häufiger über. Die Werte habe ich mehr oder 
weniger empirisch, also durch probieren mit dem Debugger herausbekommen.
Mit PR2=50 und prescaler 1:4 läuft TMR2 nach 100 µs über, aber wie 
passen die 1:16 postscaler dazu?
Wie gesagt, es funktioniert, ich würde nur gerne wissen wieso

Gruß
Tom

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Wenn ich mich recht entsinne, zählt der Postscaler die Überläufe des 
Timer2. Dummerweise kann man sich das Postscalerregister nirgens 
anschauen. Bei dir müsste also der Interrupt erst nach 1,6 sec ausgelößt 
werden. Wann / wie allerdings das Postscalerregister zurückgesetzt wird, 
weiß ich jetzt nicht mehr so genau. Da mal in die Doku schauen.

Siehe auch http://sprut.de/electronic/pic/grund/timer/timer.htm#timer2

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.