vachelcai 发表于 2015-11-16 11:50:04

求教关于中断无限触发的问题。

void setup()
{
attachInterrupt(0, wakeISR, CHANGE );
}
void wakeISR(){
//if(!energy.WasSleeping())
state=true;
}
void loop()
{
if(state){
    Serial.print("runing");
Serial.println(digitalRead(swPin));
    state=false;
    //if(!digitalRead(swPin))
    energy.PowerDown();
    //return;
}else{
……
}
从串口得到的数据如下:

runing1
runing0
runing1
runing0
runing1
runing0
runing1
runing0
runing1
runing0
当d2不接5v时 是这样
当d2接5v时立刻停止。。
是我硬件太渣吗?还是逻辑上本来就有错?为什么不接5v时d2自动一高一低。。。 而且接d2的时候,为什么最后一行不是runing1,而是随机的。。求解。先谢。
其他相关,板是淘宝上买的dccduino nano ,我手头2个板都会。

zoologist 发表于 2015-11-16 12:36:03

不接5v的时候端口状态应该是悬空,有可能是高也有可能是低

有可能是这个造成的

一般端口声明为 Input 然后做中断的时候最好有上拉电阻

vachelcai 发表于 2015-11-16 14:54:03

zoologist 发表于 2015-11-16 12:36 static/image/common/back.gif
不接5v的时候端口状态应该是悬空,有可能是高也有可能是低

有可能是这个造成的


谢谢了,问题解决了。。。

vachelcai 发表于 2015-11-16 16:50:55

出现新问题了。。好奇怪,再请教一下。。我用了上拉电阻,但是新问题来了,我每次触发中断都要loop运行完一次才执行,正常的顺序不是应该中断的时候是:中断function-》重新开始loop吗?
页: [1]
查看完整版本: 求教关于中断无限触发的问题。