紫/aiq龙 发表于 2014-12-9 18:23:52

看门狗无法使用,怎么破?

arduino nano和arduino pro mini 无法使用看门狗,无限复位,如果要使用看门狗,怎么破?

zoologist 发表于 2014-12-9 21:13:51

具体描述一下你的问题,这个功能是arduino 用的 avr上的功能,我觉得不太可能有问题

紫/aiq龙 发表于 2014-12-10 09:16:09

zoologist 发表于 2014-12-9 21:13 static/image/common/back.gif
具体描述一下你的问题,这个功能是arduino 用的 avr上的功能,我觉得不太可能有问题

比如
#include <avr/wdt.h>

const int ledPin =13;      // 定义LED管脚
   

void setup() {
//初始化LED为输出
pinMode(ledPin, OUTPUT);      
//初始化看门狗

   wdt_enable(WDTO_1S);      
}

void loop()
{
//LED常亮
digitalWrite(ledPin, HIGH);   
//喂狗,注释本句查看有没有重启
   delay(2000);
wdt_reset();   
}
当去执行复位的时候,arduino 的L灯就一直在闪,无法复位,手动按复位键都没无法复位了,得断电才行。

紫/aiq龙 发表于 2014-12-13 14:44:28

神游天外 发表于 2014-12-10 15:01 static/image/common/back.gif
真的真的真的真的真的

你解决这个现象了吗?

terry—sun 发表于 2014-12-29 16:31:28

紫/aiq龙 发表于 2014-12-13 14:44 static/image/common/back.gif
你解决这个现象了吗?

我也遇到了这个问题,不知道怎么解决。。。

xuanjj 发表于 2015-1-4 15:56:28

你的看门狗设置成1s超时,但是程序里面喂狗是每个2s钟啊,喂不到,当然无限重启了,喂狗间隔设置到1s以内试试

chensg 发表于 2015-1-4 19:56:48

xuanjj 发表于 2015-1-4 15:56 static/image/common/back.gif
你的看门狗设置成1s超时,但是程序里面喂狗是每个2s钟啊,喂不到,当然无限重启了,喂狗间隔设置到1s以内试 ...

正确!:lol

紫/aiq龙 发表于 2015-1-8 11:55:06

xuanjj 发表于 2015-1-4 15:56 static/image/common/back.gif
你的看门狗设置成1s超时,但是程序里面喂狗是每个2s钟啊,喂不到,当然无限重启了,喂狗间隔设置到1s以内试 ...

我设置成8s都是不行

紫/aiq龙 发表于 2015-1-8 11:56:25

terry—sun 发表于 2014-12-29 16:31 static/image/common/back.gif
我也遇到了这个问题,不知道怎么解决。。。

没解决,只是用多了一块板子,直接当看门狗用了

henrypcw 发表于 2015-1-31 22:22:36

试试这样用看门狗行不?

#define Pin 4
bool test = 0;

void setup()
{
      pinMode(Pin,OUTPUT);
      digitalWrite(Pin,test);

      //设置、启动看门狗,
      MCUSR &= ~(1<<WDRF);//清除WDRF
      WDTCR |= (1<<WDCE) | (1<<WDE);//设置信号
      WDTCR |= (1<<WDE) | (1<<WDP2) | (1<<WDP1) | (1<<WDP0);//设置WDP和启动看门狗WDE,必须在4个周期内完成,此处为2s的周期

      for (byte i = 0; i <3; i++)
      {
                digitalWrite(Pin,test = !test);
                delay(50);
      }
}

void loop()
{
      //喂狗
      __asm__ __volatile__ ("wdr");

      digitalWrite(Pin,test = !test); delay(300);
      
      //关闭看门狗
      // WDTCR |= (1<<WDCE) | (1<<WDE);//设置信号
      // WDTCR = 0x00;//清除WDE位
}

henrypcw 发表于 2015-1-31 22:23:34

试试如上代码行不?
页: [1]
查看完整版本: 看门狗无法使用,怎么破?