volatile bool triggered;
#define MAKE_HANDLER(pin) \
volatile int count_##pin; \
void handler_##pin() \
{ \
++count_##pin; \
triggered = true; \
}
MAKE_HANDLER(16)
MAKE_HANDLER(17)
MAKE_HANDLER(18)
void setup() {
Serial.begin(0);
attachInterrupt(digitalPinToInterrupt(16), handler_16, RISING);
attachInterrupt(digitalPinToInterrupt(17), handler_17, RISING);
attachInterrupt(digitalPinToInterrupt(18), handler_18, RISING);
}
void loop() {
if (!triggered)
return;
Serial.println(String() + count_16 + " " + count_17 + " " + count_18);
triggered = false;
}