[牛人杂谈] 在N76E003上使用看门狗的配置顺序

[复制链接]
1575|3
 楼主| 稳稳の幸福 发表于 2024-1-29 20:41 | 显示全部楼层 |阅读模式
看门狗是一种用于监视系统运行的计时器,如果系统在规定的时间内未能喂狗(重置看门狗计时器),则会触发复位,从而确保系统稳定性。
下面是在N76E003上使用看门狗的一般步骤:
1.包含头文件:
在你的代码中包含N76E003的头文件,以便能够使用相关的寄存器和定义。
  1. #include "N76E003.h"
2.配置看门狗:
配置看门狗的相关寄存器,包括计时器的时钟源、计数器的预分频因子和计时器的模式。
  1. void ConfigureWatchdog() {
  2.     // 配置看门狗时钟源和分频因子
  3.     set_WDCON(WDCLR | WDTF | PRESCALE_DIV_1024);
  4.     // 开启看门狗
  5.     set_WDCON(WDCON|0x01);
  6. }
在上面的例子中,WDCLR表示清除看门狗计时器的标志,WDTF表示看门狗计时器的溢出标志,PRESCALE_DIV_1024表示使用时钟源并将计时器预分频为1024。
3.喂狗:
在程序的关键部分,确保通过写入相应的值来清除看门狗计时器,以防止系统复位。
  1. void FeedWatchdog() {
  2.     set_WDCON(WDCLR);
  3. }
4.主循环中喂狗:
在主循环或其他适当的位置,定期调用FeedWatchdog函数,以防止看门狗计时器溢出。
  1. int main() {
  2.     // 初始化
  3.     ConfigureWatchdog();

  4.     while (1) {
  5.         // 主程序逻辑

  6.         // 喂狗
  7.         FeedWatchdog();
  8.     }
  9. }
这就是在N76E003上使用看门狗的基本步骤。请注意,确保看门狗的配置和喂狗的频率适合你的应用程序,以防止误触发复位。根据具体的需求,你可能需要调整看门狗的时钟源、预分频因子和喂狗的频率。

 楼主| 稳稳の幸福 发表于 2024-1-29 20:42 | 显示全部楼层
话说你用过单片机的看门狗吗?
海边浪漫幻象 发表于 2025-9-8 15:29 | 显示全部楼层
N76E003 配置看门狗顺序:1. 关闭总中断;2. 解锁看门狗寄存器(写入特定值);3. 配置溢出时间(设置 WDT_CON 寄存器);4. 使能看门狗;5. 恢复中断使能;6. 主循环定期喂狗(写入特定值刷新计数器)。
脑洞星球居民 发表于 2025-9-10 15:51 | 显示全部楼层
我正在使用N76E003,这个看门狗配置步骤对我来说非常实用,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

204

主题

3450

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部