External Links

Creative Science Centre

 

Watchdog

This is already enabled and just need turning on.

// watch dog
constant WDTCLR         0xBF800004
constant WDTSET         0xBF800008 // wdtcomset
constant WDSW           (1 << 15)
constant WDCLR          1

The watchdog is turned on by:     @WDTSET = WDSW

The watchdog can be turned off by: @WDTCLR = WDSW

In the program loop incorporate:   @WDTSET = WDCLR  to prevent the watchdog firing.

The timing is set in the DEVCFG1 register that is set in the boot loader and so cannot be changed, a copy of the value can be seen in the WDTCON register, bits 6:2 but those values are read only. The current setting on the MX1 gives about 15 seconds

Sleep

The watchdog time can also be used for waking the CPU up from sleep as it keeps running when the processor is asleep.

Code snippet

        // power down here
        wfPower(0) // wifi power down
        @WDTSET = WDSW // turn on watch dog (about 16 sec)
        for j = 1 to 2
            powersave(1) // sleep mode for CPU (about 15-16 sec)
        next
        @WDTCLR = WDSW // watchdog off

The above will shut down the processor for about 30 seconds, increase the J index for more multiples of 15 seconds.