??? 03/12/10 15:37 Read: times |
#174065 - Certainly, but it responds to a missing "kick" Responding to: ???'s previous message |
... and one needs to think about what, if any, information that yields. l
Generally speaking, a restart will lead to a code segment that initializes the ports and the internal data memory. If specific provision is not made for exactly the purpose of determining how one has arrived at the present state, there's little to gain from writing to a RAM location since it (a) will be reinitialized on RESET, or it will contain data from the last session before RESET, assuming some defect in code or hardware has led to the watchdog or other restart. When I suggested that, for experimental purposes, one might add a flipflop and LED to indicate that one specific event had occurred, the idea was to indicate that the watchdog had NOT been allowed to time out, yet the code had run amok. It's true that the watchdog can't "find" anything. However, one can "find" things based on the fact that the watchdog has timed out. That's only possible, though, if certain preparations have been made. I personally have little faith in internal watchdogs, even in those MCU's that tell you that it was the watchdog that caused the last restart. The main reason is that it can't help at all with debugging code unless one changes the code. The only real benefit it provides is that it will prevent lockups or "freezes" if the code is properly organized. In the case under discussion is clearly is not. What Kai pointed out is that RESET would disable the watchdog, and the thing would only be turned on if the code managed to get far enough to do that. Modifying the code proves nothing about the initial code, nor does it say much about any code to follow. IMHO, if the watchdog is to be of any use at all, it should be used to recover from failure of timely EXTERNALLY GENERATED events. If one is waiting for serial input, for example, and that doesn't arrive, well, after a prescribed period it would be helpful to restart. Naturally, if the serial input still doesn't arrive, the watchdog will time out again, but at least one has something one can examine. RE |