亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

什么是看门狗定时器?

组件和用品

Arduino UNO
× 1

应用和在线服务

Arduino IDE

关于这个项目

当你的微控制器在无限循环中混淆时是什么情况😖。有没有像在执行任务时挂起或卡住微控制器的情况😖。常见的故障排除方法有哪些? 重置按钮,右侧 ?实际上有可能一直按下按钮吗?😕。那么,执行此任务的设备怎么样?听起来不错。酷... !🙂。

是的 !现在我们正在讨论这种已经内置在微控制器中的设备。那是看门狗定时器。

看门狗定时器。

"看门狗定时器 ( WDT ) 是一个硬件计时器,如果主程序忽略定期为其提供服务,它会自动生成系统重置。它通常用于自动重置因软件或硬件故障而挂起的嵌入式设备。 “(os.mbed.com/cookbook/WatchDog-Timer)。

喂狗!

如果你家有一只狗。你需要定期喂那只狗。如果有一天你不能喂它,它会咬你的!就像这个看门狗定时器一样工作。

我们在程序中有一个主要部分反复运行(loop )。我们启用看门狗定时器加载的初始值大于主程序中的总延迟。每次主程序都会重置这个定时器。如果在任何情况下主程序在倒计时到零之前没有返回重置计时器,则会生成中断以重置处理器。同样看门狗定时器保护微控制器免于挂起。

所以,让我们在 Arduino 中尝试看门狗定时器;)

在 Arduino UNO 中使用 ATMEGA328P 微控制器。

看门狗定时器库

#include  

在Arduino中使用看门狗定时器需要库

启用看门狗定时器:

wdt_enable(WDT 复位定时器);

要启用看门狗定时器,WDT RESET TIMER 15ms - 8s 不等

例如:wdt_enable(WDT0_8S); --启用看门狗定时器8秒

重置看门狗定时器

wdt_reset();

该函数用于复位看门狗定时器。复位函数在 loop() 内部使用 .如果您的程序使用更大的 delay() 大于看门狗定时器阈值延迟的,在该延迟之前也增加复位功能。否则,它将在完成该任务之前重置微控制器。

禁用看门狗定时器

wdt_disable();

示例代码:

#include 
void setup(){
Serial.begin(9600);
Serial.println("安装开始:");
// 在启用 WDT 之前进行延迟
// 此延迟有助于完成所有初始任务
delay(2000);
wdt_enable(WDTO_4S);
}
void loop(){
Serial.println("LOOP开始了!");
for(int i=0; i<=5; i++){
Serial.print( "循环:");
Serial.print(i);
Serial.println();
delay(1000);
wdt_reset();
}
//无限循环挂起MCU
while(1){}
}

输出

在评论部分提出您的反馈、问题和讨论。

代码

  • 完整代码
完整代码Arduino
#include void setup(){ Serial.begin(9600); Serial.println("安装开始:"); // 在启用 WDT 之前进行延迟 // 此延迟有助于完成所有初始任务 delay(2000); wdt_enable(WDTO_4S);}void loop(){ Serial.println("循环开始!"); for(int i=0; i<=5; i++){ Serial.print("Loop :"); Serial.print(i); Serial.println();延迟(1000); wdt_reset(); } //无限循环挂起MCU while(1){}}

制造工艺

  1. 什么是嵌件成型?
  2. 什么是原型设计?
  3. 什么是直线电机?
  4. 什么是数控车削?
  5. 什么是铸造厂?
  6. 什么是多级泵?
  7. 什么是压送纸器?
  8. 什么是潜水泵?
  9. 什么是饮料机器人?
  10. 什么是机械压力机?
  11. 什么是伺服电机?
  12. 什么是动力卡盘?