在Arduino Uno或其他ATmega328P芯片的AVR处理器上,可以使用Pin Change中断来侦听引脚上的变化,而不仅仅是当一个引脚变为HIGH或LOW时触发中断。Pin Change中断有三个组(Group0,Group1和Group2),每个组有8个引脚,共24个引脚可用于中断。
以下是在Arduino Uno上启用Pin Change中断的示例代码:
//定义要使用的引脚 #define interruptPin 2
//启用Pin Change中断 void setup() { PCMSK2 |= (1 << PCINT18); //设置要启用中断的引脚(这里为Digital Pin 2) PCICR |= (1 << PCIE2); //使能相应的Pin Change中断组(Group2) sei(); //启用所有中断 }
//中断处理程序 ISR(PCINT2_vect) { //执行中断操作 }
注:需要设置正确的引脚和中断组,具体请参考相关文档或资料。