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.
assuming your watchdog is working and configured to reset the MCU, it is safe to assume that your program ends up in a condition in which it services the watchdog but not performing its main function.
I don't think that is a safe assumption.
That needs to be verified - not assumed!
Also that there is nothing that disables the Watchdog after it has been correctly started!
That needs to be verified - not assumed! I checked with the debugger. How can I verify otherwise?
How, precisely, did you check?
Have you actually verified that, if you deliberately enter an infinite loop, the watchdog does cause a reset?
Remember: the only things we know about you or your project are those that you explicitly state in your posts.
I updated WD in timer ISR. Now I think, it should not be like that.
Can you see why it's not a Good Thing?
Yes
View all questions in Keil forum