首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MCU/Arduino复位

MCU/Arduino复位
EN

Stack Overflow用户
提问于 2014-03-17 05:58:11
回答 1查看 594关注 0票数 0

我有下面的设置。我发现我的arduino又重新开始了。我有Arduino板,lCD显示器,传感器。传感器和LCD显示器共用地面,7805集成电路和Arduino板的5v电源采用7812稳压器IC供电。最后,他们在共同的基础上,potential.Now,我有一点代码。我单独尝试过,每个函数都运行良好,没有任何错误,并且Arduino板不会得到reseted.When,我把我的所有代码块放在一起。重新开始。一旦它重新启动,就可以正常工作几分钟,然后再重新启动。

  1. 如何解决这一问题? #包括 #包括 LiquidCrystal液晶显示器(12、11、7、6、5、4);空设置(){ Serial.begin(9600);wdt_enable(WDTO_8S);MODE=INIT;pinMode(传呼机,输出);lcdClear();} void (){ Track_loop();LCD_Display();CHK_Key();wdt_reset();Serial.println(“.”);} Track_loop() { calcPos();calcTime();calcElevationAngle();callMode();callMode();// checkHWFaults();Wind_calc();Print_Result();}voidPrint_Result(){ Print_Date();Print_Time()};

我在我的Serial.println语句中添加了这些函数

代码语言:javascript
复制
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);


}
EN

回答 1

Stack Overflow用户

发布于 2014-03-17 06:12:50

我怀疑你对看门狗的使用引起了问题。

如果我们说http://www.embedds.com/using-watchdog-timer-in-your-projects/是一个“权威”的信息来源,那么您对wdt_reset()的调用可能没有及时被调用,因此您的系统正在被重置?

如果您启用了看门狗计时器,您必须小心和重置它之前,它填补和重置MCU。否则,如果程序在没有重置的情况下挂起或停留在无限循环中,则只需计数并重置系统。

来自watchdog.html

代码语言:javascript
复制
#define wdt_reset() __asm__ __volatile__ ("wdr")

重置看门狗计时器。当启用看门狗计时器时,在计时器过期之前需要调用此指令,否则将发生看门狗发起的设备重置。

如果你从你的项目中禁用了看门狗,你还会得到相同的结果吗?

更新1

要调试代码,可以使用Serial.println("xxxx")函数将所需的文本输出到已安装的串口。

看见

注意:我们是否应该更新这些指令,使其包含完整的说明?标记为Community,这样每个人都可以根据需要进行更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22447842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档