まだUNOでしか確認してない。
#ifdef ARDUINO_AVR_ATTINYX5 #define PCINT_0_PIN 0 #define PCINT_1_PIN 1 #define PCINT_2_PIN 2 #define LED_PIN 3 #else #define PCINT_0_PIN 8 // PB0: PCINT0 #define PCINT_1_PIN 9 // PB1: PCINT1 #define PCINT_2_PIN 10 // PB2: PCINT2 #define LED_PIN 13 #endif void setup() { Serial.begin(9600); pinMode(PCINT_0_PIN, INPUT_PULLUP); pinMode(PCINT_1_PIN, INPUT_PULLUP); pinMode(PCINT_2_PIN, INPUT_PULLUP); pinMode(LED_PIN, OUTPUT); #ifdef ARDUINO_AVR_ATTINYX5 byte a = GIMSK; Serial.println(a); PCMSK = 0b00000110; // - - PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT0 #else byte a = PCICR; Serial.println(a); PCICR = 0b000000001; // - - - - - PCIE2 PCIE1 PCIE0 PCMSK0= 0b00000111; // PCINT7 PCINT6 PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT0 #endif sei(); } void loop() { } ISR(PCINT0_vect) { Serial.println("int0"); digitalWrite(LED_PIN, HIGH); delay(500); digitalWrite(LED_PIN, LOW); } ISR(PCINT1_vect) { Serial.println("int1"); digitalWrite(LED_PIN, HIGH); delay(500); digitalWrite(LED_PIN, LOW); } ISR(PCINT2_vect) { Serial.println("int2"); digitalWrite(LED_PIN, HIGH); delay(500); digitalWrite(LED_PIN, LOW); }
Arduinoのピン番号とAVRのピン番号PA*, PB*, ...の対応表あり
Arduino: Basic circuit, bootloader and programming - ElectroSoftCloud