为了防止“系统在异常情况下,受到干扰,MCU/CPU程序跑飞,导致系统长时间异常工作”通常是引进看门狗,如果MCU/CPU 不在规定的时间内按要求访问看门狗,就认为MCU/CPU处于异常状态,看门狗就会强迫MCU/CPU复位,使系统重新从头开始按规律执行用户程序。使单片机系统可靠性设计变得更方便/简洁
方法/步骤
1
WDT_CONTR: 看门狗(Watch-Dog-Timer)控制寄存器
2
Symbol符号 Function功能
3
看门狗定时器预分频值,如下表所示
4
设置定时器为50MS
5
看门狗寄存器设置WDT_CONTR=0x37;也就是分频 9.1022 S
6
设置定时器中断函数(1次进入是50ms)而看门狗溢出是9.1022秒那么这里累加165次就是8.250秒清零1次看门狗(时间需要留一定的余量)
7
如果你的程序中有外部中断,或者其他中断时一般应该把看门狗清零的定时器的优先级设置为最高优先级也就是在主程序main里,while(1)上写入IP=2; IPH=2;这样T0就是最高优先级
注意事项
1
看门狗清零定时器的优先级
2
看门狗分频值
3
看门狗清零应该留有一定的余量