arduino UNO R3用外接电源不能使用中断-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10492|回复: 10

[已解决] arduino UNO R3用外接电源不能使用中断

[复制链接]
发表于 2014-6-15 00:27 | 显示全部楼层 |阅读模式
本帖最后由 嘿ME 于 2014-6-16 15:55 编辑

是用attachInterrupt(0,led,RISING)
用USB供电时都能正常的使用中断,
当我高兴的取下USB换成外接电源时却不能中断了,
这是什么情况?
BUG吗?

[mw_shl_code=c,true]const int tab[23][8]={
1,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,
1,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,
1,0,0,0,0,0,0,0,
1,0,0,0,0,0,0,0,
1,1,0,0,0,0,0,0,
//L
0,1,1,1,1,1,1,0,
1,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,1,
0,1,1,1,1,1,1,0,
//O
0,0,0,0,0,0,0,1,
0,0,0,1,1,1,1,1,
1,1,1,0,0,0,0,0,
0,0,1,1,1,0,0,0,
0,0,0,0,0,1,1,1,
0,0,0,0,0,0,0,1,
//V
1,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,
1,0,0,0,1,0,0,1,
1,0,0,1,1,1,0,1,
1,1,0,0,0,0,1,1
//E
};

void setup()
{
  Serial.begin(9600);
  pinMode(2,INPUT);
  digitalWrite(2,LOW);
  attachInterrupt(0,led,RISING);
  for(int i=3;i<11;i++)
  {
    pinMode(i,OUTPUT);
  }
}

void led()
{
    for(int i=3;i<11;i++)
    {
      digitalWrite(i,LOW);
    }
    delay(5000);
}

void loop()
{
  for(int x=0;x<23;x++)
  {
    for(int i=3;i<11;i++)
    {
      digitalWrite(i,tab[x-3]);
      delay(1);
    }
  }
}[/mw_shl_code]

发表于 2014-6-15 07:44 | 显示全部楼层
首先可以肯定的是,这和电源无关
另外想请问楼主,确定一般情况电平是稳定的?加了下拉电阻没?
发表于 2014-6-15 13:10 | 显示全部楼层
能具体描述一下你是怎么判断“不能中断”的嘛?
 楼主| 发表于 2014-6-16 15:53 | 显示全部楼层
coloz 发表于 2014-6-15 07:44
首先可以肯定的是,这和电源无关
另外想请问楼主,确定一般情况电平是稳定的?加了下拉电阻没? ...

digitalWrite(2,LOW);
可以这样使用下拉电阻吧?
这样仍然是USB供电可以中断,
外接电源时不会中断。

代码以放上去了,请看下吧。
 楼主| 发表于 2014-6-16 15:54 | 显示全部楼层
liudr 发表于 2014-6-15 13:10
能具体描述一下你是怎么判断“不能中断”的嘛?

代码以放上。
中断时LED全都会置低电平,
通过LED亮和不亮判断啊。
 楼主| 发表于 2014-6-16 15:55 | 显示全部楼层
liudr 发表于 2014-6-15 13:10
能具体描述一下你是怎么判断“不能中断”的嘛?

代码以放上。
中断时LED全都会置低电平,
通过LED亮和不亮判断啊。
发表于 2014-6-16 16:58 | 显示全部楼层
嘿ME 发表于 2014-6-16 15:53
digitalWrite(2,LOW);
可以这样使用下拉电阻吧?
这样仍然是USB供电可以中断,

下拉电阻实说,IO需要外接20K电阻到GND,不能用程序实现
 楼主| 发表于 2014-6-16 21:12 | 显示全部楼层
coloz 发表于 2014-6-16 16:58
下拉电阻实说,IO需要外接20K电阻到GND,不能用程序实现

明白了。
但是我加下拉电阻仍然有问题。

刚才我做舵机的实验,USB供电舵机能稳定在90度不动。
但是外接电源时会一点一点的转的0度,就是说不能稳定在90度,最后会转到0度。
这会是外接电源不稳定还是其他什么问题呢?
 楼主| 发表于 2014-6-16 21:47 | 显示全部楼层
coloz 发表于 2014-6-16 16:58
下拉电阻实说,IO需要外接20K电阻到GND,不能用程序实现

查了下,有可能是9V的电源有点问题。
看看明天有没有机会去理工学院的实验室测测了。
等测下参数再问问你。谢谢啦
发表于 2014-6-17 00:59 | 显示全部楼层
我怎么记得在终端处理程序里面delay不工作呢,汗。你中断程序delay个什么劲儿?中断处理程序就是处理很快的内容的,你delay了,假设delay工作,那下一个终端谁处理?!?!?!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-5 10:42 , Processed in 0.073407 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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