创客机器人实战:基于Arduino和树莓派
上QQ阅读APP看书,第一时间看更新

4.4 中断函数

单片机的中断是由于某一随机事件的发生,单片机原程序暂停运行,转去执行另一程序(中断服务程序),执行完毕后又自动返回原程序中断点继续运行,包括中断源、主程序、中断服务程序。

中断源:引起中断的软硬件。

主程序:现在运行的程序。

中断服务程序:中断发生后,处理中断事件的程序。

1.interrupts()和noInterrupts()

在Arduino中,interrupts函数负责打开中断,noInterrupts函数负责关闭中断,这两个函数均无参数且无返回值函数。

2.attachInterrupt(interrput,function,mode)

attachInterrupt函数用于设置外部中断,包括3个参数,分别为中断源、中断处理函数和触发模式,下面具体说明。

中断源:值为0或者1,对应2或者3号数字引脚。

中断处理函数:其参数值为函数的指针,当中断发生时执行该子程序部分,是一段子程序。

触发模式:4种类型:LOW(低电平触发)、CHANGE(变化时触发)、RISING(低电平变为高电平触发)、FALLING(高电平变为低电平触发)

3.detachInterrupt(interrput)

detachInterrupt:取消中断,参数interrupt表示要取消的中断源。