以前一直用mega2560,好不容易解决了watchdog的问题,看门狗正常工作。
新项目中boss要求mega328p也能够支持看门狗,想想应该是比较容易的,毕竟avr官方文档中有对watchdog的说明。这个坑就这样埋下了。
写一个看门狗测试程序:
#include <avr/wdt.h>
const int ledPin = 13; // the number of the LED pin
void setup() {
wdt_disable();
Serial.begin(9600);
Serial.println("System Init OK!");
pinMode(ledPin, OUTPUT);
Serial.println("Wait 5 Sec..");
delay(5000);
wdt_enable(WDTO_8S);
/*
WDTO_15MS
WDTO_30MS
WDTO_60MS
WDTO_120MS
WDTO_250MS
WDTO_500MS
WDTO_1S
WDTO_2S
WDTO_4S
WDTO_8S
*/
Serial.println("Watchdog enabled!");
}
uint8_t timer = 0;
void loop() {
if (!(millis() % 1000)) {
Serial.print(millis());
Serial.print("--");
timer++;
Serial.println(tim