New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ESP32 watchdog interrupt (IDFGH-12714) #13699
Comments
As I said above, I want to execute the contents of my interrupt function on timeout. I think at this point you should stay in the watchdog interrupt and not reset the behavior (is that understood correctly) 。Attached is my error log and program |
I've actually enabled this feature. But I wanted it to execute my interrupt program on timeout, and it didn't @nopnop2002 |
I confirmed that esp_task_wdt_isr_user_handler() is called in the code below.
No. |
@nopnop2002 I see that your results did indeed execute the interrupt content, but my results indicate that the interrupt content is still not executed. Can you help me check if there are any design issues with the code snippet above. My phenomenon is still constantly reporting the information shown in the log。 |
@nopnop2002 Perhaps what you mean is that when a timeout occurs, it will enter an interrupt, and at the same time, a reset behavior will still occur, rather than staying in an interrupt. Am I correct in understanding this way |
My current phenomenon is that I am able to enter the interrupt to execute the corresponding program, but still experience restart behavior. It seems that no matter what program is in my interrupt program, it will restart when the time is up. Can't we avoid this problem by entering the interrupt execution program instead of constantly restarting. |
Yes this is correct, the callback registered by If you disable Maybe if you explain in a bit more details what you are trying to achieve and why then we might be able to give some suggestion on how to do this. |
I understand, but I would like to know why you want to do this, and what you want to do in this loop action. Since it is not a super-common use-case I suspect you might be trying to do something that would be better achieved in another way 😄
If you stay in the WDT ISR for too long it will eventually trigger the second stage timeout, which will force a system reset. As shown in the picture above that timeout time is 2x the normal timeout time, so 10s by default |
|
Regarding your use-case: do you want the system to reset itself after sending the message (1), or are you just using it to log an error (2) ? If 2. then you could consider just setting a |
1.Thanks again for your reply |
|
If you use Your example looks correct to me. |
you are right, I didn't know this.
|
@ESP-Marius |
Not sure I understand what you mean here. I dont think anything should interrupt it (before the second stage timeout triggers, if you are taking too long) |
Answers checklist.
General issue report
I want to use TWDT, enter the interrupt function when a watchdog timeout occurs, and execute some of the logic I want in the interrupt function (without using the print function). The interrupt function is declared using esp_task_wdt_isr_user_handler (). However, it seems that the timeout behavior does not enter the function, and repeated restarts occur. How do I correctly define a watchdog interrupt @svenfuchs @paulreimer @kumekay @
The text was updated successfully, but these errors were encountered: