Arduino 标准语言结构中没有定时器的概念.
如果要定时,也是使用delay()函数.
所以,如果你要搞定时器,那么就得老老实实的用AVR的语言结构.
国外有人搞555电路做定时器,然后触发Arduino的中断的办法.
您好:ARDUINO定时器中断是代码的错误造成的,修改代码如下。
MsTimer2::set(unsigned long ms, void (*f)()) ,设定定时及调用的语句
MsTimer2::start() ,定时开始
MsTimer2::stop() ,定时停止
reference的library中有解释和例子(每500ms亮灯)
#include
void flash() {
static boolean output = HIGH;
digitalWrite(13, output);
output = !output;
}
void setup() {
pinMode(13, OUTPUT);
MsTimer2::set(500, flash); // 500ms period
MsTimer2::start();
}
void loop() {
}
1 定时器是怎样工作的:当你启动启动定时器,定时器就会在每个机器周期加1.当加到所有为都为1时,再加一就会让定时器所有位都为0.此时如果中断是被允许的,就会进入中断。 2 由上面可知产生中断所经历的时间是(全为1的二进制+1-初值)×机器周期;这样我样通过赋初值地方式,就可以改变产生中断经历的时间。这就是这时器为什么要给初值。当然你不给初始值的话,初值其实就是0 3 我说的对不对