小政哥 发表于 2012-12-30 18:01:03

ARDUINO 怎么使用定时器中断

ARDUINO 怎么使用定时器中断想用arduino做个计数器 可惜arduino里面没有定时器函数 要用avr的能力有限 确实不会   还望大神指点迷津

swim 发表于 2012-12-30 21:04:01

你要做一个怎样的计数器?其实用arduino后很多完全不用考虑定时器 寄存器的

pww999 发表于 2012-12-30 23:53:29

http://www.geek-workshop.com/forum.php?mod=viewthread&tid=595

zhangsiyan12134 发表于 2012-12-31 12:41:48

:o外部中断+555Timer?最近刚学的555计时器

小政哥 发表于 2012-12-31 19:55:38

其实就是计外部脉冲个数比如计数1s时间 就可以得到输入脉冲的频率 但是这就必须用到内部定时器中断 可是arduino内部定时器中断没有函数 所以就无从下手

小政哥 发表于 2012-12-31 23:10:21

哪个大神指点下迷津啊

sherlockholme 发表于 2013-9-20 22:44:03

还是不明白你说的啥意思。。。不过定时器中断是有的,从网上下一个库叫TimerOne,先在void setup()里写初始化函数Timer1.initialize(1000000); 然后在loop里写Timer1.attachInterrupt(function);
这样就会每隔一秒进入一次中断,中断函数是function

yyy_zc 发表于 2013-10-3 22:11:07

还是不太了解需求。
可能可采用如下:
1。http://www.geek-workshop.com/forum.php?mod=viewthread&tid=595 进行脉冲计数
2。 m2timer   库 设置 m2time ( 1秒 ),每一秒读一次计数器,然后将计数器清 0 。

东华小虎 发表于 2013-10-11 00:14:07

其实用avr的也不复杂。。。。我现在就会用c写avr。。。没试过arduino

阡陌剑影 发表于 2013-10-11 09:25:26

http://www.geek-workshop.com/forum.php?mod=viewthread&tid=610&page=1#pid3486

这有个定时器库

inovar 发表于 2014-6-21 09:54:41

阡陌剑影 发表于 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:49:40

本帖最后由 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);
        }
}

qwe835481 发表于 2015-5-13 22:14:19

sherlockholme 发表于 2013-9-20 22:44 static/image/common/back.gif
**** 作者被禁止或删除 内容自动屏蔽 ****

請問中斷函數該怎麼打 ..?

gthrtg 发表于 2015-11-4 14:53:13

我要5铜板。。。。。。。。
页: [1]
查看完整版本: ARDUINO 怎么使用定时器中断