我有下面的设置。我发现我的arduino又重新开始了。我有Arduino板,lCD显示器,传感器。传感器和LCD显示器共用地面,7805集成电路和Arduino板的5v电源采用7812稳压器IC供电。最后,他们在共同的基础上,potential.Now,我有一点代码。我单独尝试过,每个函数都运行良好,没有任何错误,并且Arduino板不会得到reseted.When,我把我的所有代码块放在一起。重新开始。一旦它重新启动,就可以正常工作几分钟,然后再重新启动。
我在我的Serial.println语句中添加了这些函数
void Print_Date(){
Serial.print("Local Date:");
Serial.print(local_day);
Serial.print("/");
Serial.print(local_month);
Serial.print("/");
Serial.println(local_year);
}
void Print_Time()
{ Serial.print("local_time is:");
Serial.print(local_h);
Serial.print("-");
Serial.print(local_m);
Serial.print("-");
Serial.println(local_s);
}发布于 2014-03-17 06:12:50
我怀疑你对看门狗的使用引起了问题。
如果我们说http://www.embedds.com/using-watchdog-timer-in-your-projects/是一个“权威”的信息来源,那么您对wdt_reset()的调用可能没有及时被调用,因此您的系统正在被重置?
如果您启用了看门狗计时器,您必须小心和重置它之前,它填补和重置MCU。否则,如果程序在没有重置的情况下挂起或停留在无限循环中,则只需计数并重置系统。
来自watchdog.html
#define wdt_reset() __asm__ __volatile__ ("wdr")重置看门狗计时器。当启用看门狗计时器时,在计时器过期之前需要调用此指令,否则将发生看门狗发起的设备重置。
如果你从你的项目中禁用了看门狗,你还会得到相同的结果吗?
更新1
要调试代码,可以使用Serial.println("xxxx")函数将所需的文本输出到已安装的串口。
看见
注意:我们是否应该更新这些指令,使其包含完整的说明?标记为Community,这样每个人都可以根据需要进行更新。
https://stackoverflow.com/questions/22447842
复制相似问题