Interrupts
Intro
Interrupts are useful for automatically executing things in microcontroller programs and can solve timing problems. Good tasks for using an interrupt may include reading a rotary encoder or monitoring user input.
External interrupt pins available:
- NEXTuino RISE (like Arduino Uno): 2 external interrupts —
IN0/INT.0(pin 2),IN1/INT.1(pin 3) - NEXTuino PEAK/MEGA (like Arduino Mega): 6 external interrupts —
D0/INT.0,D1/INT.1,IN0/INT.5,IN1/INT.4,SDA/INT.3,SCL/INT.2
Pin change interrupts can be enabled on many more pins.
Hardware Required
- NEXTuino RISE/MAXI/MEGA
- 12/24V DC Power supply
Note: Pin header is working on 5V TTL levels. Voltage levels over 5.5V can damage the NEXTuino permanently.
Code
#include <NEXTuino.h>
const byte digital_output = NEXTuino_D0;
const byte interruptPin = NEXTuino_IN1;
volatile byte state = LOW;
void setup() {
pinMode(digital_output, OUTPUT);
pinMode(interruptPin, INPUT);
attachInterrupt(digitalPinToInterrupt(interruptPin), blink, CHANGE);
}
void loop() {
digitalWrite(digital_output, state);
}
void blink() {
state = !state;
}