Arduino对于内部中断有开源库,对于外部中断官方也有函数,这一部分算是补全这个系列吧
1.中断类型
- RESET,复位中断
- INT0、INT1,外部中断
- TIMER0、1、2,定时器中断,用于实现内部中断(定时中断)
- ADC,模数转换完成中断
- ANALOG COMP,模拟比较器中断
2.中断函数格式
ISR("中断名称"){
//中断函数实现
}
当捕捉到相应的中断时,会进入到相应的中断函数。
3.定时中断
注:参考本专栏中PWM相关博客
3.1 TIMSK
- OCIExB:该位置1且使能全局中断时,相应的定时器比较匹配B使能,如果出现比较匹配,则触发中断。
- OCIExA:该位置1且使能全局中断时,相应的定时器比较匹配A使能,如果出现比较匹配,则触发中断。
- TOIEx:该位置1且使能全局中断时,相应的定时器溢出中断使能,如果发生溢出,则触发中断。
- ICIE1:该位置1且使能全局中断时,定时器1输入捕获中断使能。
3.2 定时中断示例
3.2.1 示例1
// Timer2定时中断
int tick = 0; //计数值
void setup(){
Serial.begin(115200); // 初始化串口
TIMSK2