whj0531 发表于 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始终不变,于是指示灯就一直闪着。把芯片插回开发板,又是正常的。恳请高手指教。

wwwusr 发表于 2015-8-7 12:57:43

我觉得问题可能出在复位电路。

whj0531 发表于 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

maxims 发表于 2015-8-8 08:44:13

whj0531 发表于 2015-8-7 13:46 static/image/common/back.gif
手动复位也是如此
if(a interval) {
    // 保存当前值,方便下次再次和当前时间比较


if(a<=3);

q=q+1;

Q加1之后,用在那里?
A的值在那里改变它呢?
页: [1]
查看完整版本: 请教一个奇怪的问题