对于有WATCHDOG功能的单片机,如何去检查确认其是否起作用?比如说有的单片机要在程序执行HANGUP时,WATCHDOG才执行RESET,如何确认呢?
答:以HOLTEK最基本的I/O单片机HT48R05A-1为例说明。在单片机特殊寄存器STATUS中有PD和TO位,它们是可读不可写的。读取PD和TO的值,就可以判断出不同的复位原因,例如上电复位、正常工作下RES复位,HALT状态下RES复位、正常工作下WDT复位、以及HALT状态下WDT复位。因此只需要判断此两位的数值,就可以确认WDT是否起作用了。 如果需要WDT在HALT(即HANGUP)状态时发生复位动作,那么只需在正常工作时正确的喂狗(即CLR WDT),且看门狗的时钟来源选择内部RC时钟,当程序进入HALT状态后一旦WDT溢出会发生复位了。