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.
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.
@ 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" ...
@ 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.