Moet je de watchdogtimer softwarematig telkens een reset geven of gebeurd dit automatisch?

Heb momenteel alleen het conf. bit van de Watchdog hooggemaakt en verder nergens in het programma een clrwdt gedaan.

Toch doet hij het, maar hij loopt ook zo nu en dan (helaas) vast. Ook bij het vastlopen werd de PIC niet automatisch gereset door de wdt

Afgezien van het feit dat je volgens mij het bit laag moet maken: als je geen clrwdt doet dan wordt de PIC elke 2.3 seconden gereset. (De tijd hangt trouwens van het type af en de prescaler, maar als je alles in de default laat is dit de tijd bij een 16F628). Dus ik hou het erop dat je hem nooit enabled.

In de config. bits kan je hem aanzetten. Neem aan dat er verder geen software matige conf. nog voor hoeven te worden gedaan? Prescaler heb ik voor wdt gebruikt 1-1 en ik gebruik een PIC 12F675 die (staat in datasheet) 18mS wdt heeft.

Het is overigens niet zo dat de PIC tijdens het gebruiken vastloopt. Af en toe bij frequent in/uit schakelen (van voedingsspanning) wilt hij soms niet "opstarten?".

Je moet m dan weer even uitmaken en 5 sec. laten rusten en dan pas weer aan.

Als je de WatchDog Timer actief maakt (WDTE bit=1) MOET je hem in software clearen (CLRWDT instructie).
De WDT heeft zijn eigen RC-oscillator met een periode van 7 tot 33msec (typical 18msec ), d.w.z. dat je hem minstens elke 7 msec moet clearen (verondersteld dat je de prescaler aan Timer0 toekent).
Dit clearen gebeurt in de ISR (Interrupt Service Routine).

CD :)

Op 19 mei 2006 13:46:44 schreef willyp:
Het is overigens niet zo dat de PIC tijdens het gebruiken vastloopt. Af en toe bij frequent in/uit schakelen (van voedingsspanning) wilt hij soms niet "opstarten?".

Dan moet je een proberen om PWRTE te gebruiken. (En die moet je wel clearen om hem aktief te krijgen). Misschien komt de voeding te langzaam op.

Ga ik proberen die pwrt.

Overigens, is er bij mijn toepassing een interrupt 150 keer per seconde. Maakt dit iets uit met de wdt dat hij dan autmatisch gewist wordt?