Hi, I use AT89S52 in a project. I send and receive data through TXD, RXD pins to a GSM module for sending SMS to another mobile equipment. I use watchdog facility and the watchdog counter is reset at every 256 counts. My crystal frequency is 11.0592 MHz. It happens once in a while that the uC doesn't respond and remains as if it hangs. Then it has to be RESET again. I doubt whether it happens while serial data reception and sending happens simultaneously. I wrote the program in C using KEIL IDE. My questions are 1) What are the special precautions to be taken in this case?(sending and receiving simultaneously) 2)why this happens even when the watchdog is active? It will be highly appreciated if anybody can give some guidance.
Firstly, how are you sure that the Watchdog is active?
Even if it is active, all a Watchdog does is to cause a reset if it is not "updated" within its timeout.
If your Watchdog "update" scheme is flawed such that "updates" can occur even when the program is "stuck" - that will obviously allow this to happen.
See: www.8052.com/.../173972 www.8052.com/.../174030 www.8052.com/.../174042
I use watchdog facility and the watchdog counter is reset at every 256 counts.
sounds like a watchdog update in a timer ISR which makes that watchdog TOTALLY useless
Erik
Not sure that it's necessarily totally useless - but would need careful consideration...
"makes that watchdog TOTALLY useless" Can you kindly elaborate this point or suggest some reading material to understand this point?
"makes that watchdog TOTALLY useless" Can you kindly elaborate this point or suggest some reading material to understand this point? A processor can go far astray and still have the timers running, thus feeding the WD in a timer ISR will make the watchdog NOT bite even if the code run astray.
Useful information. Thank you
View all questions in Keil forum