ARDUINO 怎么使用定时器中断
ARDUINO 怎么使用定时器中断想用arduino做个计数器 可惜arduino里面没有定时器函数 要用avr的能力有限 确实不会 还望大神指点迷津 你要做一个怎样的计数器?其实用arduino后很多完全不用考虑定时器 寄存器的 http://www.geek-workshop.com/forum.php?mod=viewthread&tid=595 :o外部中断+555Timer?最近刚学的555计时器 其实就是计外部脉冲个数比如计数1s时间 就可以得到输入脉冲的频率 但是这就必须用到内部定时器中断 可是arduino内部定时器中断没有函数 所以就无从下手 哪个大神指点下迷津啊 还是不明白你说的啥意思。。。不过定时器中断是有的,从网上下一个库叫TimerOne,先在void setup()里写初始化函数Timer1.initialize(1000000); 然后在loop里写Timer1.attachInterrupt(function);这样就会每隔一秒进入一次中断,中断函数是function 还是不太了解需求。
可能可采用如下:
1。http://www.geek-workshop.com/forum.php?mod=viewthread&tid=595 进行脉冲计数
2。 m2timer 库 设置 m2time ( 1秒 ),每一秒读一次计数器,然后将计数器清 0 。 其实用avr的也不复杂。。。。我现在就会用c写avr。。。没试过arduino http://www.geek-workshop.com/forum.php?mod=viewthread&tid=610&page=1#pid3486
这有个定时器库 阡陌剑影 发表于 2013-10-11 09:25 static/image/common/back.gif
http://www.geek-workshop.com/forum.php?mod=viewthread&tid=610&page=1#pid3486
这有个定时器库
thank you! 本帖最后由 clumsybird 于 2014-8-28 23:50 编辑
// matrixclock0828.ino
int pbIn = 0; // 定义中断引脚为0,也就是D2引脚
int ledOut = 13; // 定义输出指示灯引脚
volatile int state = LOW; // 定义默认输入状态
void setup()
{
// 置ledOut引脚为输出状态
pinMode(ledOut, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
// 监视中断输入引脚的变化
attachInterrupt(pbIn, stateChange, LOW);
Serial.begin(9600);
}
byte counter=0;
void loop()
{
switch (counter) {
case 1:
digitalWrite(8, HIGH);
break;
case 2:
digitalWrite(9, HIGH);
break;
case 3:
digitalWrite(13, HIGH);
break;
default:
counter=0;
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(13, LOW);
}
/*digitalWrite(ledOut, HIGH);
delay(counter*1000);
digitalWrite(ledOut, LOW);
delay(counter*1000); */
}
void stateChange()
{
pinMode(2, INPUT);
if(digitalRead(2)==LOW){
counter++;
while(digitalRead(2)==LOW);
}
} sherlockholme 发表于 2013-9-20 22:44 static/image/common/back.gif
**** 作者被禁止或删除 内容自动屏蔽 ****
請問中斷函數該怎麼打 ..? 我要5铜板。。。。。。。。
页:
[1]