极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12185|回复: 3

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

[复制链接]
发表于 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个板都会。
回复

使用道具 举报

发表于 2015-11-16 12:36:03 | 显示全部楼层
不接5v的时候端口状态应该是悬空,有可能是高也有可能是低

有可能是这个造成的

一般端口声明为 Input 然后做中断的时候最好有上拉电阻
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-16 14:54:03 | 显示全部楼层
zoologist 发表于 2015-11-16 12:36
不接5v的时候端口状态应该是悬空,有可能是高也有可能是低

有可能是这个造成的

谢谢了,问题解决了。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-16 16:50:55 | 显示全部楼层
出现新问题了。。好奇怪,再请教一下。。我用了上拉电阻,但是新问题来了,我每次触发中断都要loop运行完一次才执行,正常的顺序不是应该中断的时候是:中断function-》重新开始loop吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 00:24 , Processed in 0.052755 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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