Arduino Uno では外部割り込みに使えるピンが2つとされている。STM32/Arduinoで使える外部割り込みについて実験してみたところ、ポートAでは12ピン(PA0~PA10,PA15)、ポートBでは15ピン(PB0,PB1,PB3~PB15)が使えるようだ。ただし、ポートAとポートBを同時に使うことはできなかった。
volatile int state = LOW;
void setup() {
}
void loop() {
pinMode(PC13, OUTPUT); // PC13=LED
pinMode(PA0,INPUT_PULLDOWN); // PA0 プルダウン入力
pinMode(PA1,INPUT_PULLUP); // PA1 プルアップ入力
attachInterrupt(PA0, blinkON, CHANGE); // HIGHで割込発生
attachInterrupt(PA1, blinkOFF, CHANGE); // LOWで割込発生
while(1){
digitalWrite(PC13, state);
}
}
void blinkON() {
state = LOW;
}
void blinkOFF() {
state = HIGH;
}
![]() | ||
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |






