Arduino论坛
直播中

洪先生

8年用户 3经验值
擅长:EMC/EMI设计
私信 关注
[问答]

arduino uno的看门狗不起作用

代码如下:
#include
const int ledpin=12;    //led灯输出
void setup(){
  Serial.begin(9600);
  //指示灯输出
  pinMode(ledpin,OUTPUT);
  digitalWrite(ledpin,HIGH);
  //开启看门狗,设置溢出时间1S 2S 4S 8S 15MS 30MS 60MS 120MS 250MS 500MS
  wdt_enable(WDTO_8S);
}
void loop() {
  //看门狗测试例子
   digitalWrite(ledpin,HIGH);
   delay(1000);
   digitalWrite(ledpin,LOW);
   delay(1000);
   wdt_reset();//喂狗操作,使看门狗定时器复位
}


实验结果:LED灯开、关间隔1秒,没有看到等待8秒的看门狗现象
谁能给我支持,苦思冥想都没明白是怎么回事

回帖(2)

houjue

2017-9-11 14:05:56
发你一段看门狗例程!

#include
#define TIMEOUT WDTO_8S      // predefine time, refer avr/wdt.h
const int ledPin =  13;      // the number of the LED pin

void setup(){
  // disable the watchdog
  //wdt_disable();
  pinMode(ledPin,OUTPUT);
  // LED light once after start or if timeout
  digitalWrite(ledPin,HIGH);
  delay(1000);
  // enable the watchdog
  wdt_enable(TIMEOUT);
}

void loop(){
  // process runing  
  digitalWrite(ledPin,LOW);
  delay(9000); //if timeout trig the reset
  //feed dog
  wdt_reset();
}

Arduino UNO R3 + IDE Arduino-1.0.6 / 1.5.8 测试通过,仔细对比一下你就明白了!
举报

new_fresh

2018-8-1 09:49:32
看门狗复位时间太长了,每次主循环及时刷新了看门狗的定时器,肯定看不到单片机复位的现象。把看门狗复位时间设置小于2s或者把主循环的延时时间超过8s,就能看到复位现象,不知道还有没有帮助了。。。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分