Testing sketch counting pin change interrupts.
Testing sketch counting pin change interrupts.
1/** =========================================================================
2 * @example{lineno} interrupt_counter.ino
3 * @brief Testing sketch counting pin change interrupts.
5 * @m_examplenavigation{page_extra_helper_sketches,}
6 * ======================================================================= */
10#define EI_ARDUINO_INTERRUPTED_PIN
11#include <EnableInterrupt.h>
13const uint8_t firstInterruptPin = 2;
14const uint8_t lastInterruptPin = 31;
15int interrupCounts[lastInterruptPin - firstInterruptPin + 1];
19 interrupCounts[arduinoInterruptedPin - firstInterruptPin] =
20 interrupCounts[arduinoInterruptedPin - firstInterruptPin] + 1;
21 Serial.print(arduinoInterruptedPin);
23 Serial.println(arduinoPinState);
29 Serial.print("Time, ");
30 for (int i = 0; i < lastInterruptPin - firstInterruptPin; i++) {
31 sprintf(buffer, "%3d", i + firstInterruptPin);
35 sprintf(buffer, "%3d", lastInterruptPin);
36 Serial.println(buffer);
37 for (int i = 0; i <= lastInterruptPin - firstInterruptPin; i++) {
38 pinMode(i + firstInterruptPin, INPUT);
39 enableInterrupt(i + firstInterruptPin, pinInterrupt, CHANGE);
40 interrupCounts[i] = 0;
45 sprintf(buffer, "%8u", millis());
48 for (int i = 0; i < lastInterruptPin - firstInterruptPin; i++) {
49 sprintf(buffer, "%3d", interrupCounts[i]);
53 sprintf(buffer, "%3d",
54 interrupCounts[lastInterruptPin - firstInterruptPin]);
55 Serial.println(buffer);
56 Serial.print("Pin 21 is ");
57 Serial.println(digitalRead(21));