Arduino interrupt
一 Introduce
中断与手机电脑应用的控件的作用相似,一旦符合条件一般都会执行相应的方法.
比如当电脑要打开一个应用,第一个要做的就是双击软件的图标,图标相当于中断的接口,双击相当于中断的触发条件,而双击后打开的界面就是中断绑定的方法.
二 Pattern and Parameters:
attachInterrupt(param1,param2,param3):
param1: 标题中断的接口:
板子不同中断的个数也不同,
比如:
UNO有两个中断0(Pin2),中断1(Pin3);
MEGA2560有2,3,18,19,20,21
此参数的表示方法可以有:
digitalPinToInterrupt(pin) : 用引脚来获得中断号
或者直接写中断号比如 :0 就是Pin2
param2: 执行的方法:
执行的方法与一般写的函数一样:
void func()
{
... ...
}
param3: 触发条件:
定义何时发生中断以下四个contstants预定有效值:
LOW 当引脚为低电平时,触发中断
CHANGE 当引脚电平发生改变时,触发中断
RISING 当引脚由低电平变为高电平时,触发中断
FALLING 当引脚由高电平变为低电平时,触发中断.
Example:
void setupt()
{
Serial.begin(9600);
attachInterrupt(digitalPinToInterrupt(2) ,func,CHANGE);
}
void loop()
{
}
void func()
{
Seiral.println(1);
}
这个例子的主函数并没有任何代码,但只要改变pin2的点平,RX的灯就会闪,
2就是中断的接口,改变电平就是中断的条件(CHANGE),RX灯闪就是执行的功能.
中断只是内存中的一块地址,我们把方法绑定到这个地址里面,只要使用系统提供好的触发条件,等外部触发,系统就能检测到,然后在第一时间执行地址内已绑定的方法.