Quote Originally Posted by Darrel Taylor View Post

The base period of the WDT on a 4580 is 4ms, and with a postscaler of 512 it will timeout after about 2 seconds.

Your main loop will take less than 2 seconds each time so a single CLEARWDT statement at the end of the loop just before GOTO Main should suffice,
Darrel,

I've added DEFINE NO_CLRWDT 1 at the start of the code along with other defines. Then added one CLEARWDT just before the GOTO MAIN -

Just before the main loop the code jumps to a simple section that displays the current version
Code:
about:
    LCDOUT $FE,2,"   Multi - Therm    "
lcdout $FE, $C0, "    Thermostat      "

lcdout $FE, $D4, " Firmware Ver 4.60  "
Pause 2000
LCDOUT $FE,1
goto main
No with the CLEARWDT inserted as suggested the code is constantly displaying the about screen. IE its constantly resetting which looking at the pause 2000 line in the about the same as the WDT.

So I commented out the GOTO About and the program ran fine, however if I jump to the main menu it quickly resets before you get chance to make any changes. So I guess I have to go through each section of the code to ensure that I insert enough CLEARWDT statements to allow the program to function, but not defeat the purpose of the WDT ?