void setup() { Serial.begin(115200); pinMode(LEFT_MOTOR_PIN, OUTPUT); pinMode(RIGHT_MOTOR_PIN, OUTPUT); pinMode(LEFT_MOTOR_DIRECT_PIN, OUTPUT); pinMode(RIGHT_MOTOR_DIRECT_PIN, OUTPUT); for(byte i = LOW_CHANNEL; i <= NUM_CHANNELS; i++) { pinMode(channels[i], INPUT); } enableInterrupts(); delay(2000); } void enableInterrupts() { for(byte i = 0; i <= NUM_CHANNELS; i++) { byte pin = channels[i]; *digitalPinToPCMSK(pin) |= bit (digitalPinToPCMSKbit(pin)); // enable pin PCIFR |= bit (digitalPinToPCICRbit(pin)); // clear any outstanding interrupt PCICR |= bit (digitalPinToPCICRbit(pin)); // enable interrupt for the group } } // handle pin change interrupt for D8 to D13 here ISR (PCINT0_vect) { readPins(); }