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);
- }
|