LKS05x 系列看门狗操作知多少
LKS05x系列看门狗配置操作如下:
1.看门狗状态控制
void SYS_WatchDogCmd(FuncState state)
{
SYS_WR_PROTECT = 0x7A83; //解除写保护
if(state == ENABLE)
{
SYS_RST_CFG |= BIT0; //使能看门狗
}
else
{
SYS_RST_CFG &= (~BIT0); //关闭看门狗
}
SYS_WR_PROTECT = 0x0000; //开启写保护
}
2.看门狗复位时间设置
函数说明:看门狗复位时间设置,低12位恒为0,输入范围(0x001~0x1FF),复位时间范围为0.0625~32s。计算公式为(timeOut << 12) / 65536 ,注意复位时间不能设置的太小,以访芯片处于频繁复位状态,导致芯片无法烧录。
需要注意的是:在全温度范围内,64KRC时钟还会存在+-16%左右的偏差,所以保险起见,建议看门狗喂狗时间要比64K计算的理论值再快个20~30%。
void SYS_WatchDogTHSet(u16 timeOut)
{
SYS_WDT_PSW = 0xA6B4;
SYS_WDT_TH = (u32)(timeOut << 12);
}
3. 喂狗函数
两个函数功能相同,都会重置看门狗计数器
void SYS_FeedDog(void)
{
SYS_WDT_PSW = 0xA6B4;
SYS_WDT_CLR = 0x798D;
}
void SYS_WatchDogTHSet(u16 timeOut)
{
SYS_WDT_PSW = 0xA6B4;
SYS_WDT_TH = (u32)(timeOut << 12);
}
一般好多人都不启用看门狗 单片机看门狗(Watchdog Timer,简称WDT)是一种重要的硬件保护机制,可以在程序出现异常或死锁时自动重启单片机系统,以确保系统的稳定性和可靠性。通常情况下,单片机的WDT由一个计时器和相关的控制逻辑电路组成,可以周期性地进行计时操作,一旦计时器超时未被清零,就会自动触发单片机的复位信号。
WDT的使用方法通常是在程序中设置一个计时器,定时器会定期产生一个计时器中断。当系统的正常运行下,计时器中断被及时处理并清零计时器,以防止系统复位。但是,如果出现程序异常或死锁等问题导致无法正常清零计时器,WDT就会在计时器超时后自动触发系统复位,从而使系统恢复到初始状态,避免了由于程序异常导致的系统死机或崩溃。
需要注意的是,WDT的定时时间需要根据具体的应用场景来设置,如果设置的时间太短,系统可能会误触发复位;如果设置的时间太长,系统出现问题时可能无法及时恢复。另外,WDT只能用于解决程序异常或死锁等问题,不能用于解决硬件故障等问题。因此,在系统设计中,应该综合考虑各种因素,合理使用WDT来提高系统的可靠性。 这个看门狗不会复位吧?
现在很少使用看门狗。 看门狗的配置还是比较简单的关键是在什么位置喂狗 真爱吴迪迪 发表于 2023-3-22 18:15
现在很少使用看门狗。
小程序基本不用 大型程序还是得考虑用一用的 单片小菜 发表于 2023-3-22 12:44
这个看门狗不会复位吧?
如果看门狗用的不好的话就会导致程序复位 重置看门狗计数器的两个函数的功能虽然相同原理是一样的妈 zhuomuniao110 发表于 2023-3-21 20:10
一般好多人都不启用看门狗
我不是不启用 是不敢启用 因为用不好 反而会有反作用 zhuomuniao110 发表于 2023-3-21 20:10
一般好多人都不启用看门狗
要么是不知道看门狗 要么是用不好看门狗 说实话一般确实用不好,复杂程序还是需要用下
页:
[1]