程序的运行总是不能一帆风顺的,时常需要监控一些事件的发生以做出相应的反应。如果使用轮询的方式进行检测的话也是可以的,但是检测的效率比较低,存在等待时间比较长的缺点。而中断检测可以达到实时检测的效果。
如下图所示中断可以看成是主程序外一段独立的程序,当中断触发后,控制器暂停当前正在进行的主程序,跳转去处理对应的中断程序。当中断程序执行完成后再返回运行主程序。所以可以做到实时响应事件。在中断中执行的程序是中断处理程序——中断函数,这个函数不能带有任何参数,且返回的类型为空。
如下所示提供了简单的中断函数:
void KeyInterrupt()
{
digitalWrite(LED,!digitalRead(LED));//将LED状态进行翻转
}
ESP32的中断根据其