Basic Library
Digital I/O
Analog I/O
Advanced I/O
Time
Math
Trigonometry
Random Numbers
Bits and Bytes
Interrupts
Serial Comm.
Standard Library
Ethernet
Servo Motor
Stepping Motor
Character LCD
SPI
I2C (Wire)
SD Card
SD (File Operations)
Periodic Operation
Clock (RTC)
PPG (Pulse Generator)
WiFiEsp
ICS (Serial Servo)
FreeRTOS Tips
Interrupts
This library allows users to trigger a process interrupt function or enable/disable an interrupt function when the input to a pin changes value.
attachInterrupt
- Description
- Specifies a function to execute (call) when an external interrupt occurs (signal on external pin).
- Syntax
- attachInterrupt(pin, void(*)(void) func, mode)
- Parameters
- pin: The number of the interrupt number (One of 2, 6, 11, 12, 24)
func: The function to call when the interrupt occurs
mode:
LOW (to trigger the interrupt whenever the pin is low)
CHANGE (to trigger the interrupt whenever the pin changes value)
FALLING (to trigger when the pin goes from high to low)
RISING (to trigger when the pin goes from low to high) - Returns
- None
detachInterrupt
- Description
- Turns off the interrupt specified in attachInterrupt.
- Syntax
- detatachInterrupt(pin)
- Parameters
- pin: The number of the pin used for the interrupt (One of 2, 6, 11, 12, 24)
- Returns
- None
interrupts
- Description
- Re-enables the interrupt disabled in noInterrupts.
- Syntax
- interrupts()
- Parameters
- None
- Returns
- None
noInterrupts
- Description
- Disables an interrupt process. Use this when you need to protect the timing of a specific process; this can even be used to disable an important task run in the background.
- Syntax
- noInterrupts()
- Parameters
- None
- Returns
- None
Sample Program
This is a sample that generates an interrupt when Pin 11 changes.
#include <Arduino.h>
int pin = PIN_LED1;
volatile int state = LOW;
void blink()
{
state = !state;
}
void setup()
{
pinMode(pin, OUTPUT);
attachInterrupt(11, blink, CHANGE);
}
void loop()
{
digitalWrite(pin, state);
}