Pizzro 发表于 2013-2-2 12:11:36

watchdog的bug?

使用watchdog的程序后,

#include <avr/wdt.h>                                                                //使用WDT看门狗

wdt_enable(WDTO_8S);                                                                  //初始化看门狗

wdt_reset();                                                                                          //喂狗

然后给个长于8S的延时,系统就可以重新启动

我的2560在指定的8秒超时以后。arduino就处于死机的状态。
串口没有输出了。然后L灯一直快速的闪烁、

更新程序的话 又会出现下面的问题。基本无法使用了,请问该如何解决。

Binary sketch size: 30410 bytes (of a 258048 byte maximum)
processing.app.SerialException: Serial port 'COM36' already in use.Try quiting any programs that may be using it.
        at processing.app.Serial.<init>(Serial.java:144)
        at processing.app.Serial.<init>(Serial.java:76)
        at processing.app.debug.Uploader.flushSerialBuffer(Uploader.java:75)
        at processing.app.debug.AvrdudeUploader.uploadViaBootloader(AvrdudeUploader.java:88)
        at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:66)
        at processing.app.Sketch.upload(Sketch.java:1664)
        at processing.app.Sketch.exportApplet(Sketch.java:1624)
        at processing.app.Sketch.exportApplet(Sketch.java:1578)
        at processing.app.Editor$DefaultExportHandler.run(Editor.java:2314)
        at java.lang.Thread.run(Thread.java:619)
processing.app.debug.RunnerException: Serial port 'COM36' already in use.Try quiting any programs that may be using it.
        at processing.app.debug.Uploader.flushSerialBuffer(Uploader.java:99)
        at processing.app.debug.AvrdudeUploader.uploadViaBootloader(AvrdudeUploader.java:88)
        at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:66)
        at processing.app.Sketch.upload(Sketch.java:1664)
        at processing.app.Sketch.exportApplet(Sketch.java:1624)
        at processing.app.Sketch.exportApplet(Sketch.java:1578)
        at processing.app.Editor$DefaultExportHandler.run(Editor.java:2314)
        at java.lang.Thread.run(Thread.java:619)
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
avrdude: ser_send(): write error: sorry no info avail

Pizzro 发表于 2013-2-2 12:12:41

我个人估计是不是 因为watchdog的设置 ,让Bootloader程序 也不断地在重启,然后需要重新烧录bootloader?

gaoshine 发表于 2013-2-2 15:33:57

严重同意楼上的观点,的确和bootloader有很大关系我的经验是Arduino Duemilanove的就有问题,Arduino Uno的就可以通过。{:soso_e100:}

maybachwang 发表于 2013-4-19 17:08:32

用最新的IDE1.04重新刷Bootloader。
页: [1]
查看完整版本: watchdog的bug?