A-5
GPIO WDT BKL Programming MS-98F3
Watchdog Timer
2. WatchdogTimer –WDT
Thebaseaddress(WDT_BASE)ofWDTconfigurationregistersis0xA10.
2.1 SetWDTTimeUnit
val=Inportb(WDT_BASE+0x05); //ReadcurrentWDTsetting
val=val|0x08;//minutemode.val=val&0xF7ifsecondmode
Outportb (WDT_BASE+0x05,val); //WritebackWDTsetting
2.2 SetWDTTime
Outportb (WDT_BASE+0x06,Time); //WriteWDTtime,value1to255.
2.3 EnableWDT
val=Inportb(WDT_BASE+0x0A); //ReadcurrentWDT_PMEsettin g
val=val|0x01;//EnableWDTOUT:WDOUT_EN(bit0)setto1.
Outportb (WDT_BASE+0x0A,val); //WritebackWDTsetting.
val=Inportb(WDT_BASE+0x05); //ReadcurrentWDTsetting
val=val|0x20;//EnableWDTbysetWD_EN(bit5)to1.
Outportb (WDT_BASE+0x05,val); //WritebackWDTsetting.
2.4 DisableWDT
val=Inportb(WDT_BASE+0x05); //ReadcurrentWDTsetting
val=val&0xDF;//DisableWDTbysetWD_EN(bit5)to0.
Outportb (WDT_BASE+0x05,val); //WritebackWDTsetting.
2.5 CheckWDTResetF lag
IfthesystemhasbeenresetbyWDTfunction,thisflagwillsetto1.
val=Inportb(WDT_BASE+0x05); //ReadcurrentWDTsetting.
val=val&0x40;//CheckWDTMOUT_STS(bit6).
if(val) printf(“timeouteventoccurred”);
else printf(“timeouteventnotoccurred”);
2.6 ClearWDTResetFlag
val=Inportb(WDT_BASE+0x05); //ReadcurrentWDTsetting
val=val|0x40;//Set1toWDTMOUT_STS(bit6);
Outportb (WDT_BASE+0x05,
val); //WritebackWDTsetting