test01 发表于 2012-9-6 18:01:24

arduino环境下,怎么设个中断子程序

比如我想 发生计数器0溢出中断,执行一段子程序,然后跳回中断前的程序继续

id9502 发表于 2012-9-6 21:55:20

#include <avr/io.h>      
#include <avr/interrupt.h>   

void loop(){
//你的主程序
}

void setup(){
timer();
}
void timer(){
TCCR2A = 0x00;
TCCR2B = 0x07;
TIMSK2=_BV(TOIE2) | 0x00;
TCNT2 = 0x00;
TCCR2A = 0x01;
sei();
}
ISR(TIMER2_OVF_vect){
TCNT2 = 0x00;
//你的中断程序:
}

//手头正好有Timer2的程序,就发上来了。
//其实不太建议用timer0,会干扰delay()等一系列Arduino函数的效果。

id9502 发表于 2012-9-6 22:00:40

本帖最后由 id9502 于 2012-9-6 22:22 编辑

其实鉴于Timer0,Timer2同属八位计时器,功能上有很多重合,上面的代码中只要把所有的"2”改为"0"就可以操作Timer0了。上面的代码用的是16MHz,1024预分频,最好不要在中断程序里写太多太复杂的代码。

芷雅焉 发表于 2012-10-31 17:59:47

这个mark一下~

GoStop 发表于 2013-6-30 07:51:56


#include <avr/io.h>      
#include <avr/interrupt.h>这两个头文件是从哪搞的啊?:)
页: [1]
查看完整版本: arduino环境下,怎么设个中断子程序