Gast
#712139
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.