双源电子

在线客服
 工作时间
周一至周五 :8:30-17:30
周六至周日 :9:00-17:00

ARDUINO学习12

作者:双源电子

定时器是我们经常碰到的一种中断处理的实际应用,中断技术是一种使CPU中止正在执行的程序,而优先转去处理特殊事件的操作。
例如,我们在主程序中要读取很多个传感器的值,在这个过程中,我需要系统给外界一个信号指示灯,表示系统正在运行状态下,这时,就可以用定时器来实现。定时器就是指CPU按照设定值进行计时,当计时达到时,就会触发一个中断响应;定时器可以是周期性的,也可以是一次性的。
ARDUINO中比较常用的定时器库有MsTimer2 等,下载地址:http://playground.arduino.cc/Main/MsTimer2
MsTimer2 库简单好用, 只有三个主要函数:
(1) 定时器设置
MsTimer2::set(unsigned long ms, void (*f)())
参数: unsigned long ms表示定时时长,以ms为单位;
void (*f)()表示定时时间到了后要执行的函数;
(2)启动定时器
MsTimer2::start()    
(3)终止定时器
MsTimer2::stop();
示例代码:
// Toggle LED on pin 13 each second
#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);  
   MsTimer2::set(500, flash); // 500ms 周期
   MsTimer2::start();
}
void loop() {
//do your job
}
将上述代码写入主板中,会发现D13控制的LED灯每隔500ms改变一下状态,周期性的闪动。

联系方式
_faiMaterial_000045

联系人:ANTBOT001

QQ:584860790

邮 箱:584860790@qq.com

交流群: 615486305