ARDUINO提供了三个比较常用的定时器库,分别是timer0,timer1和timer2,我们这里以timer2为例讲一下定时器的用法,timer2库函数叫做MsTimer2 ,包含有三个主要函数:
(1) 定时器设置
MsTimer2::set(unsigned long ms, void (*f)())
参数: unsigned long ms表示定时时长,以ms为单位;
void (*f)()表示定时时间到了后要执行的函数;
(2)启动定时器
MsTimer2::start()
(3)终止定时器
MsTimer2::stop();
来看下面的代码:
#include <MsTimer2.h>
void flash()//D13管脚控制的LED灯闪烁
{
static boolean output = HIGH; //声明静态变量,输出初始值为1
digitalWrite(13, output); //设置D13管脚输出值
output = !output;//输出取反,当前的值是1,则下一次变为0;当前值是0,则下一次变为1
}
void setup()
{
pinMode(13, OUTPUT);//设置D13为输出模式
MsTimer2::set(500,flash); // 设置定时器周期为500ms,执行函数为flash()
MsTimer2::start();//启动定时器
}
void loop() {
//主函数中不用做任何事
}
将上述代码写入主板中,会发现D13控制的LED灯每隔500ms改变一下状态,周期性的闪动。