#include <MsTimer2.h> //定时器库的 头文件
void flash() //中断处理函数,改变灯的状态
{
static boolean output = HIGH;
digitalWrite(13, output);
output = !output;
}
void setup()
{
pinMode(13, OUTPUT);
MsTimer2::set(500, flash); // 中断设置函数,每 500ms 进入一次中断
MsTimer2::start(); //开始计时
}
void loop()
{
}
再提供一种方法,利用 mills()同样函数可以实现中断的功能。mills()函数功能是获取系统运行的时间长度,单位ms。最大为9小时22分,如果超出时间将从0开始。函数的返回值为unsigned long型。
下面程序的功能让led灯亮灭各500ms :
unsigned long ledOn=500,ledOff=500; //定义led灯变化的时间长度,每500ms变化一次
int ledStatus; //定义LED灯的状态,HIGH or LOWm
void setup()
{
pinMode(13,OUTPUT);
digitalWrite(13,HIGH);
ledStatus=HIGH;
}
void loop()
{
unsigned long nowtime=millis(); //获取当前的系统运行时间长度
if(ledS