MacrosGlobalmanipulationoftheinterruptflag
The global interrupt flag is maintained in the I bit of the status register (SREG).
Handling interrupts frequently requires attention regarding atomic access to objects that could be
altered by code running within an interrupt context, see <util/atomic.h>.
Frequently, interrupts are being disabled for periods of time in order to perform certain operations
without being disturbed; see Problemswithreorderingcode for things to be taken into account with
respect to compiler optimizations.
#define sei() __asm__ __volatile__ ('sei' ::: 'memory')
#define cli() __asm__ __volatile__ ('cli' ::: 'memory')
Macrosforwritinginterrupthandlerfunctions
#define ISR(vector, attributes)
#define SIGNAL(vector)
#define EMPTY_INTERRUPT(vector)
#define ISR_ALIAS(vector, target_vector)
#define reti() __asm__ __volatile__ ('reti' ::: 'memory')
#define BADISR_vectISRattributes
#define ISR_BLOCK
#define ISR_NOBLOCK
#define ISR_NAKED
#define ISR_FLATTEN
#define ISR_NOICF
#define ISR_NOGCCISR
#define ISR_ALIASOF(target_vector)