大家看这个程序可以实现吗?
//主程序void setup(){
Serial.begin(115200);
interruptSetup1(); //定时器中断1
}
void loop(){
interruptSetup2(); //在 loop( ) 中可以再嵌套另一个定时器中断吗????
Serial.println(.....);
}
/////////////////////////////////////////////////////////////////
void interruptSetup1(){
TCCR2A = 0x02;
TCCR2B = 0x06; //频分256
OCR2A = 0X7C; //124
TIMSK2 = 0x02;
sei();
}
ISR(TIMER2_COMPA_vect){
cli();
................
sei();
}
/////////////////////////////////////////////////////////////////
void interruptSetup2(){
TCCR2A = 0x02;
TCCR2B = (1<<CS22);
OCR2A = 0x31;
TIMSK2 = 0x02;
sei();
}
ISR(TIMER2_COMPA_vect){
cli();
...............
sei();
} 首先不知道你要干什么就无法判断这个代码能不能实现
其次,这个代码编译不通过,原因是第八行Serial.println(.....)处原样输出应为Serial.println(".....")
还有,代码中出现了两处.............这都是无法编译的,请问你是没有复制所有的代码吗 zjz5717 发表于 2016-4-10 09:01 static/image/common/back.gif
首先不知道你要干什么就无法判断这个代码能不能实现
其次,这个代码编译不通过,原因是第八行Serial.print ...
谢谢你。我输出这块我知道,我主要是想问下,最开始有个定时器中断interruptSetup1(),在loop( )中又加一个定时器中断2,这种语法能不能实现,这两个timer2定时器会不会彼此干扰。 qushengnian 发表于 2016-4-10 09:44 static/image/common/back.gif
谢谢你。我输出这块我知道,我主要是想问下,最开始有个定时器中断interruptSetup1(),在loop( )中又加一 ...
UNO主板的话同时装载了三个内部中断计时器,也就是说最多可以三个同时使用,你这个文件中只是用了其中的两个,理论来讲没有问题,只要你写的代码没错的话都是可以运行的
但是这三个计时器0、1、2控制了一些引脚,需要你注意
T/C0: Pin6(OC0A)和Pin5(OC0B)
T/C1: Pin9(OC1A)和Pin10(OC1B)
T/C3: Pin11(OC2A)和Pin3(OC2B)
而且0号计时器是默认和delay,mills这一类的函数绑定在一起的,这是写在avr那个库里的,如果你有本事修改老外写的那个库的话可以试试
具体信息参考Arduino中文社区
页:
[1]