Arduino Uno では外部割り込みに使えるピンが2つとされている。STM32/Arduinoで使える外部割り込みについて実験してみたところ、ポートAでは12ピン(PA0~PA10,PA15)、ポートBでは15ピン(PB0,PB1,PB3~PB15)が使えるようだ。ただし、ポートAとポートBを同時に使うことはできなかった。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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; } |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |