??? 07/21/04 17:39 Read: times |
#74634 - RE: WD in lengthy functions Responding to: ???'s previous message |
Have you looked at the piece of code and what I want the WDRECENT flag to be?
The "critical" run: 0: WD runs for quite a while so WDRECENT is 0. 1: WDTRST,#0x1E 2: Interrupt (breaks consequitiveness) 3: WDTRST,#0xE1 (no effect on WD, WDRECENT is still 0) 4: JNB WDRECENT(=0),WDRST1(retry) - yes, do jump. 5: WDTRST,#0x1E, this time "luckily" not followed by interrupt. (we've just returned from one, we can hope another one won't happen for a few cycles, and if it does, we can try again, hopefuly watchdog won't time out - and if it will, it could just as well before CLR EA, the conditions are almost the same) 6: WDTRST,#0xE1 just after the first. Watchdog IS reset, WDRECENT is set to 1 and will remain high for another 0.1ms or so (or maybe until next write to WDRST?) 7: JNB WDRECENT(=1), just continue. |