极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10186|回复: 3

请教一个奇怪的问题

[复制链接]
发表于 2015-8-6 23:27:13 | 显示全部楼层 |阅读模式
我自己用ATMEGA328P-PU做了一个arduino系统,原本的程序和芯片在开发板(arduino uno)上运行正常,在自己的板上就会有一些小的错误,比如我设置的if(q<=3)语句里有q=q+1的循环在开发板上能执行,在自己的的板上不能执行,原定的指示灯闪3次灭,开发板上可以,自己的板上就一直闪,一直循环,其他如显示,按键基本正常。情急之下,我用LCD显示q的值,发现在开发板上可以看到1变成2再变成3,但自己的板上一直是1,累加不执行,q始终不变,于是指示灯就一直闪着。把芯片插回开发板,又是正常的。恳请高手指教。

回复

使用道具 举报

发表于 2015-8-7 12:57:43 | 显示全部楼层
我觉得问题可能出在复位电路。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-7 13:46:25 | 显示全部楼层
手动复位也是如此
if(a<=3){
  unsigned long currentMillis = millis();
  if(currentMillis - previousMillis > interval) {
    // 保存当前值,方便下次再次和当前时间比较
    previousMillis = currentMillis;
    ledStatus=!ledStatus;
q=q+1;
lcd.setCursor(11, 0);
lcd.print(ledStatus);
lcd.setCursor(15, 0);
lcd.print(q);
digitalWrite(13, ledStatus);
} }
else digitalWrite(13,LOW);}
else digitalWrite(13,LOW);
13脚灯一直在闪,a始终为1
回复 支持 反对

使用道具 举报

发表于 2015-8-8 08:44:13 | 显示全部楼层
whj0531 发表于 2015-8-7 13:46
手动复位也是如此
if(a interval) {
    // 保存当前值,方便下次再次和当前时间比较

if(a<=3);

q=q+1;

Q加1之后,用在那里?
A的值在那里改变它呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 00:42 , Processed in 0.040999 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表