新手上路
- 积分
- 31
- 金钱
- 31
- 注册时间
- 2022-1-27
- 在线时间
- 8 小时
|
独立看门狗和窗口看门狗的区别(F4版本):
1、相同点
都是为了防止CPU跑飞
2、独立看门狗
根据内部看门狗时钟频率,装载寄存器定一个时间值,比如是1000,那么独立看门狗就会按照时钟频率,从1000开始向下每隔一个时钟周期减1,如果在减到0之前,你用程序代码重新向向下计数器里面写1000(喂狗),那么定时器会重新从1000开始向下递减。如果在减到0的时候,你还没有喂狗(用新的数值覆盖计数器),就会产生复位信号。
3、窗口看门狗
根据系统时钟频率,装载一个初始值到向下计数器(假设还是1000),并且设置一个窗口值(小于装载到计数器的初始值,假设是500),窗口看门狗一般会定死窗口下线值是64。计数器从1000开始向下减,在减到500之前(1000到500间),是不允许你去喂狗的,一旦喂狗,就会产生复位信号。只有计数器值减到上限值之后(500到64),才允许你去喂狗。当计数器减到下限值(64到0之间),如果喂狗,也会产生复位信号,当减到0之后,自动产生复位信号。
所以窗口看门狗实际上就是设置一个窗口(上下限),在这个范围内,你才允许你去喂狗,只要不在这个范围之内,都会复位。
4、区别总结:
1)窗口看门狗计时时间比独立看门狗精准,窗口看门狗使用的是系统时钟源
2)窗口看门狗严格限定喂狗时间段,独立看门狗则是只要没有到时间,都能喂狗
3)独立看门狗没有中断,一般在主循环或定时器中断回调函数内喂狗
窗口看门狗有中断,在其自己的中断服务函数内喂狗
4)独立看门狗有硬件软件之分,窗口看门狗只能软件控制
5)独立看门狗只有下限,窗口看门狗有下限和上限
6)独立看门狗是12位递减的。窗口看门狗是7位递减的
7)独立看门狗是用的内部的大约32khz rc振荡器,窗口看门狗是用的系统时钟APB1 enr
|
|