Longer Watch Dog Timer?

My understanding is that the Atmega 328 has an 8 second WDT… I would like to extend it to 10 mins.

Please tell me if I am wrong but, if I wrote a some code so that every time the WDT timed out and the code started again, it would increment a variable so that x < 75 and then start the WDT again. Once x = 75, the code would run once, resetting x to x = 0 started the whole process again.

I understand that for split second, whatever time it took to increment x, the processor would wake, but overall the processor would be sleeping (about 99.75%).

Am I barking up the wrong tree? Is there an already established way to do this?


Sounds like a reasonable solution. You can set the WDT to 8, 4, 2, or 1, seconds and fractions of a second down to 16 ms. Even if you set it for 1 second instead of 8 and the ISR took 100 instruction cycles (6.25 microseconds) to do the increment, test and sleep it would be 'running' 3.75 milliseconds over the course of 10 minutes.