Forum: Mikrocontroller und Digitale Elektronik PIC16F871 - Frage zum Timer2


von JensG (Gast)


Lesenswert?

Hi,
nun habe ich auch mal eine Frage/Problem zum Timer2 des PIC16F871 
(vermutlich generell PIC16).

Ich benutze Timer2 zum Togglen eines PORT Pins (bei jedem TMR2 Interrupt 
wird das Bit umgedreht in der ISR).

Das Datenblatt sagt zum timer2:

The prescaler and postscaler counters are cleared
when any of the following occurs:
• a write to the TMR2 register
• a write to the T2CON register
• any device reset (POR, MCLR reset, WDT reset
or BOR)
TMR2 is not cleared when T2CON is written.

Soweit alles klar.
Es scheint aber auch, daß beim Lesen des T2CON (bit TMR2ON) im main 
irgendwie die Pre/Postscaler zurückgesetzt werden (oder irgendwas 
anderes passiert).
Lasse ich die Timer2-relevanten Register in Ruhe, dann ist die 
produzierte Frequenz am Port-Pin schön gleichmäßig und symmetrisch. 
Sprich der Timer2 läuft schön rund.
Wenn ich dann das Bit TMR2ON lese (über btfsc), dann gibt's eine kurze 
Verzögerung in einer der beiden Rechteck-Halbwellen (die betroffene 
Halbwelle ist dann etwas länger als üblich). Offensichtlich gibt's also 
auch bei dieser Leseaktion einen Reset irgendwelcher Timer2-Register.
Was sagen denn die PIC-Experten unter euch dazu? Ist das bekannt? Wenn 
ja, woran könnte es liegen? Das Datenblatt jedenfalls scheint nicht 
diesen Effekt zu kennen, somit sieht es für mich eher danach aus, daß 
der PIC nicht richtig mitspielt.
Danke.

von Severino R. (severino)


Lesenswert?

Wenn Du den Sourcecode postest (oder besser gleich das ganze Projekt mit 
Watch-Fenster), in jedem Fall auf's Minimum reduziert, kann man es zu 
Simulieren versuchen.

von JensG (Gast)


Lesenswert?

@ Severino R.
das würde aber erst morgen werden. Vielleicht habe ich bis morgen auch 
gleich ein kleines, aber komplettes Sample-Programm zusammen, was diesen 
Effekt zeigt (den kompletten Sourcecode will ich Euch nicht zumuten ;-)
Lasse morgen wieder von mir "hören" ...

von JensG (Gast)


Lesenswert?

@ Severino R.
Das Problem hat sich erledigt. Scheinbar hat der PIC eine Macke, denn 
ein anderes Exemplar zeigt dieses Verhalten nicht. Ist somit kein 
Programmierfehler gewesen.
Trotzdem danke für die angebotene Hilfe.

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.