attachInterrupt(interrupt, function, mode)
描述:
当发生外部中断时,调用一个指定函数。当中断发生时,该函数会取代正在执行的程序。大多数的Arduino板有两个外部中断:0(数字引脚2)和1(数字引脚3)。
arduino Mege有四个外部中断:数字2(引脚21),3(20针),4(引脚19),5(引脚18)。
参数:
interrupt:中断引脚数
function:中断发生时调用的函数,此函数必须不带参数和不返回任何值。该函数有时被称为中断服务程序。
mode:定义什么时候发生中断如下四个contstants预约有效值:git
返回值:
无
注意事项:
当中断函数发生时,delay()和millis()的数值将不会继续变化。当中断发生时,串口收到的数据可能会丢失。你应该声明一个变量来在未发生中断时储存变量。
使用中断:
在单片机自动化程序中当突发事件发生时,中断是很是有用的,它能够帮助解决时序问题。一个使用中断的任务可能会读一个旋转编码器,监视用户的输入。
若是你想以确保程序始终抓住一个旋转编码器的脉冲,历来不缺乏一个脉冲,它将使写一个程序作任何事情都要很是棘手,由于该计划将须要不断轮询的传感器线编码器,为了遇上脉冲发生时。其余传感器也是如此,如试图读取一个声音传感器正试图遇上一按,或红外线槽传感器(照片灭弧室),试图抓住一个硬币降低。在全部这些状况下,使用一个中断能够释放的微控制器来完成其余一些工做。 函数
int pin = 13; volatile int state = LOW; void setup() { pinMode(pin, OUTPUT); attachInterrupt(0, blink, CHANGE); } void loop() { digitalWrite(pin, state); } void blink() { state = !state; }
detachInterrupt(interrupt)
描述:
关闭给定的中断。
参数:
interrupt: 中断禁用的数(0或者1)。oop