avr_interrupts(3avr)

avr_interrupts(3avr) πŸ’–βœ¨

πŸ’… NAME πŸ’…

avr_interrupts β€” <avr/interrupt.h>: Interrupts

okay bestie, this is the whole interrupt vibe for AVR-LibC, and it's giving main character energy. no cap. πŸ¦‹

🌸 SYNOPSIS 🌸

✨ Global manipulation of the interrupt flag ✨

The global interrupt flag is literally chilling in the I bit of the status register (SREG). periodt. πŸ’…

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>. iykyk. πŸ”₯

Frequently, interrupts are being disabled for periods of time in order to perform certain operations without being disturbed; see Problems with reordering code for things to be taken into account with respect to compiler optimizations. (yes, compiler optimizations are that girl. πŸ™ˆ)

#define sei()
#define cli()

πŸŽ€ Macros for writing interrupt handler functions πŸŽ€

These are the glow-up macros for your ISR besties:

#define ISR(vector,  attributes)
#define SIGNAL(vector)
#define EMPTY_INTERRUPT(vector)
#define ISR_ALIAS(vector,  target_vector)
#define reti()
#define BADISR_vect

πŸ’œ ISR attributes πŸ’œ

The extra sparkle you can slap on your ISR:

#define ISR_BLOCK
#define ISR_NOBLOCK
#define ISR_NAKED
#define ISR_FLATTEN
#define ISR_NOICF
#define ISR_NOGCCISR
#define ISR_ALIASOF(target_vector)

πŸ’– DETAILED DESCRIPTION πŸ’–

Note β€” This discussion of interrupts was originally taken from Rich Neswold's document. See Acknowledgments. 🫢

🌈 Introduction to AVR-LibC's interrupt handling 🌈

It's nearly impossible to find compilers that agree on how to handle interrupt code. Since the C language tries to stay away from machine dependent details, each compiler writer is forced to design their method of support. literally every compiler is doing its own thing. πŸ’€

In the AVR-GCC environment, the vector table is predefined to point to interrupt routines with predetermined names. By using the appropriate name, your routine will be called when the corresponding interrupt occurs. The device library provides a set of default interrupt routines, which will get used if you don't define your own. so if you don't show up, the default does. not me. πŸ™ˆ

Patching into the vector table is only one part of the problem. The compiler uses, by convention, a set of registers when it's normally executing compiler-generated code. It's important that these registers, as well as the status register, get saved and restored. yes, save and restore, no cap. πŸ’Ύ

These details seem to make interrupt routines a little messy, but all these details are handled by the Interrupt API. An interrupt routine is defined with ISR(). This macro register and mark the routine as an interrupt handler for the specified peripheral. The following is an example definition of a handler for the ADC interrupt. slay. ✨

#include <avr/interrupt.h>

ISR(ADC_vect)
{
    // user code here
}

Refer to the chapter explaining assembler programming for an explanation about interrupt routines written solely in assembly. 🧚

πŸ¦‹ Catch-all interrupt vector πŸ¦‹

If an unexpected interrupt occurs (interrupt is enabled but no handler is installed, which usually indicates a bug), then the default action is to reset the device by jumping to the reset vector. You can override this by supplying a function named BADISR_vect which should be defined with ISR() as such. The name BADISR_vect is actually an alias for __vector_default. The latter must be used inside assembly code in case <avr/interrupt.h> is not included. so if things go rogue, it's reset city. 😭

#include <avr/interrupt.h>

ISR(BADISR_vect)
{
    // user code here
}

πŸ’… Nested interrupts πŸ’…

The AVR hardware clears the global interrupt flag in SREG when an interrupt request is serviced. Thus, normally interrupts will remain disabled inside the handler until the handler exits, where the RETI instruction (that is emitted by the compiler as part of the normal function epilogue for an ISR) will eventually re-enable further interrupts. For that reason, interrupt handlers normally do not nest. For most interrupt handlers, this is the desired behaviour, for some it is even required in order to prevent infinitely recursive interrupts (like UART interrupts, or level-triggered external interrupts). In rare circumstances though it might be desired to re-enable the global interrupt flag as early as possible in the interrupt handler, in order to not defer any other interrupt more than absolutely needed. This could be done using an sei() instruction right at the beginning of the interrupt handler, but this still leaves few instructions inside the compiler-generated function prologue to run with global interrupts disabled. The compiler can be instructed to insert a SEI instruction right at the beginning of an interrupt handler by declaring the handler the following way:

ISR(XXX_vect, ISR_NOBLOCK)
{
  ...
}

where XXX_vect is the name of a valid interrupt vector for the MCU type in question, as explained below. πŸ’œ

πŸŽ€ Two vectors sharing the same code πŸŽ€

In some circumstances, the actions to be taken upon two different interrupts might be completely identical so a single implementation for the ISR would suffice. For example, pin-change interrupts arriving from two different ports could logically signal an event that is independent from the actual port (and thus interrupt vector) where it happened. Sharing interrupt vector code can be accomplished using the ISR_ALIASOF() attribute to the ISR macro:

ISR(PCINT0_vect)
{
  ...
  // Code to handle the event.
}

ISR(PCINT1_vect, ISR_ALIASOF(PCINT0_vect));
Note β€” There is no body to the aliased ISR. 🫢

Note that the ISR_ALIASOF() feature requires GCC 4.2 or above (or a patched version of GCC 4.1.x). See the documentation of the ISR_ALIAS() macro for an implementation which is less elegant but could be applied to all compiler versions. so old GCC? we can still make it work, just messier. πŸ™ˆ

✨ Empty interrupt service routines ✨

In rare circumstances, in interrupt vector does not need any code to be implemented at all. The vector must be declared anyway, so when the interrupt triggers it won't execute the BADISR_vect code (which by default restarts the application). so it's like a ghost ISR. πŸ‘»

This could for example be the case for interrupts that are solely enabled for the purpose of getting the controller out of sleep_mode().

A handler for such an interrupt vector can be declared using the EMPTY_INTERRUPT() macro:

EMPTY_INTERRUPT(ADC_vect);
Note β€” There is no body to this macro. πŸ’…

πŸ”₯ Manually defined ISRs πŸ”₯

In some circumstances, the compiler-generated prologue and epilogue of the ISR might not be optimal for the job, and a manually defined ISR could be considered particularly to speedup the interrupt handling. it's giving DIY. πŸ› οΈ

One solution to this could be to implement the entire ISR as manual assembly code in a separate (assembly) file. See Combining C and assembly source files for an example of how to implement it that way. 🧚

Another solution is to still implement the ISR in C language but take over the compiler's job of generating the prologue and epilogue. This can be done using the ISR_NAKED attribute to the ISR() macro. Note that the compiler does not generate anything as prologue or epilogue, so the final reti() must be provided by the actual implementation. SREG must be manually saved if the ISR code modifies it, and the compiler-implied assumption of __zero_reg__ always being 0 could be wrong (e. g. when interrupting right after of a MUL instruction). so you're literally on your own. periodt. πŸ’…

Warning β€” According to the GCC documentation, only inline assembly is supported in naked functions, like with ISR_NAKED. 🚨
ISR(TIMER1_OVF_vect,  ISR_NAKED)
{
  PORTB |= _BV(0);  // results in SBI which does not affect SREG
  reti();
}

🌸 Choosing the vector: Interrupt vector names 🌸

The interrupt is chosen by supplying one of the vector names in the following table. ✨

There are currently two different styles present for naming the vectors.

  • Starting with AVR-LibC v1.4, the style of interrupt vector names is a short phrase for the vector description followed by _vect. The short phrase matches the vector name as described in the datasheet of the respective device (and in the hardware manufacturer's XML/ATDF files), with spaces replaced by an underscore and other non-alphanumeric characters dropped. Using the suffix _vect is intented to improve portability to other C compilers available for the AVR that use a similar naming convention. (yes, _vect is the moment. πŸ’…)
  • A deprecated form that uses names starting with SIG_, followed by a relatively verbose but arbitrarily chosen name describing the interrupt vector. This has been the only available style in AVR-LibC up to version 1.2.x. This historical naming style is not recommended for new projects, and some headers require that the macro __AVR_LIBC_DEPRECATED_ENABLE__ is defined so that the SIG_ names ISR names are available. (so vintage, but not in a cute way. πŸ™ˆ)
Note β€” The ISR() macro cannot really spell-check the argument passed to them. Thus, by misspelling one of the names below used in ISR(), a function will be created that, while possibly being usable as an interrupt function, is not actually wired into the interrupt vector table. The compiler will generate a warning if it detects a suspiciously looking name of an ISR() function (i.e. one that after macro replacement does not start with "__vector_"). so spell it right, bestie. 😭

Apart from the NAME_vect macros listed below, for each such ISR name there is also a macro NAME_vect_num defined which resolves to the IRQ number. This is the index into the vector table, where indices start at index 0 (the reset vector). πŸ”’

See also What ISR names are available for my device? in the FAQ for how find all the IRQ names for a specific device.

πŸ¦‹ Vector Name / Description / Applicable for Device πŸ¦‹

  • AC0_AC_vect
    • Description: AC0 IRQs
    • Applicable for Device: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614, ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48
  • AC1_AC_vect
    • Description: AC1 IRQs

…and to finish off the roster for that last one, the chips that carry it are: ATtiny1614, ATtiny1616, ATtiny1617, ATtiny3214, ATtiny3216, ATtiny3217, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64EA28, AVR64EA32, AVR64EA48. Slay, that's a whole friend group. 🫢


AC2_AC_vect ✨

okay so this one is the analog comparator 2 interrupt, and the description literally just says AC2 IRQs. So bestie, it's the analog comparator 2 waving at you like "hey, something happened, come look." 🫢

Who's invited: ATtiny1614, ATtiny1616, ATtiny1617, ATtiny3214, ATtiny3216, ATtiny3217, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64


ACA_AC0_vect πŸ’œ

this one's the AC0 interrupt for the ACA peripheral, and it's giving main character energy on the XMEGA side of the family, because look at this guest list. 😭

Who's invited: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega32E5, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64C3, ATxmega64D3, ATxmega64D4, ATxmega8E5


ACA_AC1_vect ✨

same vibe, different number: this is AC1 from the ACA crew. πŸ”₯

Who's invited: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega32E5, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64C3, ATxmega64D3, ATxmega64D4, ATxmega8E5


ACA_ACW_vect πŸ¦‹

and now the ACW Window Mode one β€” same ACA family, same giant guest list, but this is the window-mode interrupt specifically. πŸ’…

Who's invited: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega32E5, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64C3, ATxmega64D3, ATxmega64D4, ATxmega8E5


ACB_AC0_vect πŸ’™

moving over to the ACB peripheral now! this is AC0 again but from the B team, and ngl the group chat got smaller. no cap, B is pickier. πŸ™ˆ

Who's invited: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128B1, ATxmega128B3, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64B1, ATxmega64B3


ACB_AC1_vect ✨

and AC1 from ACB. same list, because of course they travel together. πŸŽ€

Who's invited: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128B1, ATxmega128B3, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64B1, ATxmega64B3


ACB_ACW_vect πŸ¦‹

ACW Window Mode, B-flavored. literally the same trio of ACB interrupts, just windowed. periodt. πŸ’…

Who's invited: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128B1, ATxmega128B3, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64B1, ATxmega64B3


ADC0_ERROR_vect 😭

oh we're in ADC land now and it's a whole situation. this one is ADC0 IRQs β€” the error interrupt, aka the "bestie something went wrong" ping. πŸ’€

Who's invited: ATtiny1624, ATtiny1626, ATtiny1627, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny424, ATtiny426, ATtiny427, ATtiny824, ATtiny826, ATtiny827, AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48


ADC0_RESRDY_vect πŸ”₯

ADC0 IRQs again β€” this is the result-ready one, the "your conversion is done, come get it" πŸ‘‘. And the guest list? genuinely unhinged, biggest one we've seen so far.

Who's invited: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614, ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48


ADC0_SAMPRDY_vect 🌸

ADC0 IRQs, sample-ready edition. same description line, different squad. πŸ’–

Who's invited: ATtiny1624, ATtiny1626, ATtiny1627, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny424, ATtiny426, ATtiny427, ATtiny824, ATtiny826, ATtiny827, AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48


ADC0_WCMP_vect ⭐

ADC0 IRQs but WCMP β€” the window-compare one. ok honestly three different vectors all describing themselves as "ADC0 IRQs" is giving placeholder text energy but we move. πŸ™ˆ

Who's invited: AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32


ADC0_WCOMP_vect ⚑

careful, this is a different spelling, bestie β€” ADC0_WCOMP_vect with a COM, not CMP. both are ADC0 IRQs, they're different vectors, don't mix them up. πŸ’…

Who's invited: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614, ATtiny1616, ATtiny1617, ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny402, ATtiny404, ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816, ATtiny817


ADC1_RESRDY_vect πŸŽ€

second ADC? second ADC! this one's ADC1 IRQs and the guest list is a cute little six-chip situation. πŸ’œ

Who's invited: ATtiny1614, ATtiny1616, ATtiny1617, ATtiny3214, ATtiny3216, ATtiny3217


ADC1_WCOMP_vect πŸ¦‹

and ADC1 IRQs again, window-compare flavor. same six besties. obsessed. 🫢

Who's invited: ATtiny1614, ATtiny1616, ATtiny1617, ATtiny3214, ATtiny3216, ATtiny3217


ADC_vect πŸ‘‘

okay THIS one. this is ADC Conversion Complete and it is the moment, the icon, the legend. it's the plain old-school ADC_vect, the one everybody knows, and its guest list is genuinely taking me out β€” we're going all the way back to AT90S2333 and ATtiny15, it's giving vintage. no cap, this is the longest list in the whole file so far, so buckle up. πŸ’€βœ¨

Who's invited: AT90CAN128, AT90CAN32, AT90CAN64, AT90PWM1, AT90PWM161, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, AT90PWM81, AT90S2333, AT90S4433, AT90S4434, AT90S8535, AT90USB1286, AT90USB1287, AT90USB646, AT90USB647, ATA5272, ATA5505, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, ATA664251, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega16, ATmega163, ATmega164A, ATmega164P, ATmega164PA, ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega16A, ATmega16M1, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega32, ATmega323, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega325, ATmega3250, ATmega3250A, ATmega3250P, ATmega3250PA, ATmega325A, ATmega325P, ATmega325PA, ATmega328, ATmega328P, ATmega328PB, ATmega329, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA, ATmega32A, ATmega32C1, ATmega32M1, ATmega32U4, ATmega32U6, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega64, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega645, ATmega6450, ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega6490, ATmega6490A, ATmega6490P, ATmega649A, ATmega649P, ATmega64A, ATmega64C1, ATmega64M1, ATmega64RFR2, ATmega8, ATmega8535, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB, ATmega8A, ATtiny10, ATtiny102, ATtiny104, ATtiny13, ATtiny13A, ATtiny15, ATtiny167, ATtiny24, ATtiny24A, ATtiny25, ATtiny26, ATtiny261, ATtiny261A, ATtiny40, ATtiny43U, ATtiny44, ATtiny441, ATtiny44A, ATtiny45, ATtiny461, ATtiny461A, ATtiny48, ATtiny5, ATtiny828, ATtiny84, ATtiny841, ATtiny84A, ATtiny85, ATtiny861, ATtiny861A, ATtiny87, ATtiny88


ADCA_CH0_vect 🌸

and now we hit a little plot twist: two different entries share the name ADCA_CH0_vect, but they do NOT share a description or a device list. this first one is described as ADC Channel. ✨

Who's invited: ATxmega32E5, ATxmega8E5


ADCA_CH0_vect πŸ’œ

same name, second entry, and this time the description is Interrupt 0. same name β‰  same interrupt, iykyk. πŸ¦‹

Who's invited: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64C3, ATxmega64D3, ATxmega64D4


ADCA_CH1_vect πŸŽ€

Interrupt 1, same ADCA energy, slightly trimmed guest list. πŸ’–

Who's invited: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U


ADCA_CH2_vect 🌈

Interrupt 2. same list as channel 1, no notes, it just works. πŸ’…

Who's invited: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U


ADCA_CH3_vect ⭐

Interrupt 3 and yes, identical squad again. three for three. obsessed with the consistency honestly. 🫢

Who's invited: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U


ADCB_CH0_vect πŸ’™

switching to the B channel now β€” Interrupt 0, and look, ATxmega128B1, ATxmega128B3, ATxmega64B1, ATxmega64B3 showed up. B chips for the B channel, we love to see it. πŸŽ€

Who's invited: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128B1, ATxmega128B3, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64B1, ATxmega64B3


ADCB_CH1_vect ✨

Interrupt 1, B-side. the B1 and B3 chips dipped from this one, which is just how it goes sometimes. πŸ¦‹

Who's invited: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U


ADCB_CH2_vect 🌸

Interrupt 2. literally the same fourteen chips as channel 1. iconic, no changes needed. πŸ‘‘

Who's invited: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U


ADCB_CH3_vect πŸ’œ

Interrupt 3 β€” and the guest list for this one carries on right into the next chunk, so hold that thought. 🫢

okay so the interrupt party continues bestie, and there are so many more of these πŸ’– these are all the interrupt vector names, what they mean, and which chips get to claim them. iykyk.

  • ADC_ADC_vect β€” Conversion Complete 🌸
    • on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U
  • ADC_READY_vect β€” ADC Conversion Complete ✨
    • on: ATtiny20
  • AES_vect β€” AES Krypto Unit πŸ”
    • on: ATA5702M322
  • AESINT_vect β€” AES πŸ’…
    • on: ATA5790, ATA5790N, ATA5795
  • AES_INT_vect β€” AES πŸ”
    • on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128B3, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega384C3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3
  • AES_Operation_vect β€” AES Block Operation Ended πŸŽ€
    • on: AT90SCR100
  • AES_READY_vect β€” AES engine Ready ✨
    • on: ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2
  • ANACOMP0_vect β€” Analog Comparator 0 πŸ¦‹
    • on: ATmega16M1, ATmega32C1, ATmega32M1, ATmega64C1, ATmega64M1
  • ANACOMP1_vect β€” Analog Comparator 1 πŸ¦‹
    • on: ATmega16M1, ATmega32C1, ATmega32M1, ATmega64C1, ATmega64M1
  • ANACOMP2_vect β€” Analog Comparator 2 πŸ¦‹
    • on: ATmega16M1, ATmega32C1, ATmega32M1, ATmega64C1, ATmega64M1
  • ANACOMP3_vect β€” Analog Comparator 3 πŸ¦‹
    • on: ATmega16M1, ATmega32C1, ATmega32M1, ATmega64C1, ATmega64M1
  • ANALOG_COMP_vect β€” Analog Comparator ⚑
    • on: AT90CAN128, AT90CAN32, AT90CAN64, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATA6612C, ATA6613C, ATA6614Q, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega164A, ATmega164P, ATmega164PA, ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega325, ATmega3250, ATmega3250A, ATmega3250P, ATmega3250PA, ATmega325A, ATmega325P, ATmega325PA, ATmega328, ATmega328P, ATmega328PB, ATmega329, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA, ATmega32U2, ATmega32U4, ATmega32U6, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega64, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega645, ATmega6450, ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega6490, ATmega6490A, ATmega6490P, ATmega649A, ATmega649P, ATmega64A, ATmega64RFR2, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB, ATmega8U2, ATtiny48, ATtiny828, ATtiny88
  • ANALOG_COMP_0_vect β€” Analog Comparator 0 πŸ¦‹
    • on: AT90PWM1, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B
  • ANALOG_COMP_1_vect β€” Analog Comparator 1 πŸ¦‹
    • on: AT90PWM161, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, AT90PWM81
  • ANALOG_COMP_2_vect β€” Analog Comparator 2 πŸ¦‹
    • on: AT90PWM1, AT90PWM161, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, AT90PWM81
  • ANALOG_COMP_3_vect β€” Analog Comparator 3 πŸ¦‹
    • on: AT90PWM161, AT90PWM81
  • ANA_COMP0_vect β€” Analog Comparator 0 πŸ¦‹
    • on: ATtiny441, ATtiny841
  • ANA_COMP1_vect β€” Analog Comparator 1 πŸ¦‹
    • on: ATtiny441, ATtiny841
  • ANA_COMP_vect β€” Analog Comparator ⚑
    • on: AT90S1200, AT90S2313, AT90S2333, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, ATA5272, ATA5505, ATA6616C, ATA6617C, ATA664251, ATmega16, ATmega161, ATmega162, ATmega163, ATmega16A, ATmega32, ATmega323, ATmega32A, ATmega8, ATmega8515, ATmega8535, ATmega8A, ATtiny10, ATtiny102, ATtiny104, ATtiny11, ATtiny12, ATtiny13, ATtiny13A, ATtiny15, ATtiny1634, ATtiny167, ATtiny20, ATtiny2313, ATtiny2313A, ATtiny24, ATtiny24A, ATtiny25, ATtiny26, ATtiny261, ATtiny261A, ATtiny28, ATtiny4, ATtiny40, ATtiny4313, ATtiny43U, ATtiny44, ATtiny44A, ATtiny45, ATtiny461, ATtiny461A, ATtiny5, ATtiny84, ATtiny84A, ATtiny85, ATtiny861, ATtiny861A, ATtiny87, ATtiny9
  • AVCCL_vect β€” AVCC Low πŸͺ«
    • on: ATA5702M322, ATA5782, ATA5831
  • AVCCR_vect β€” AVCC Reset πŸ”„
    • on: ATA5702M322, ATA5782, ATA5831
  • BAT_LOW_vect β€” Battery Monitor indicates supply voltage below threshold πŸͺ«
    • on: ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2
  • BGSCD_vect β€” Bandgap Buffer Short Circuit Detected ⚠️
    • on: ATmega16HVB, ATmega16HVBREVB, ATmega32HVB, ATmega32HVBREVB
  • BOD_VLM_vect β€” BOD IRQs πŸ”‹
    • on: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614, ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48
  • BPINT_vect β€” Battery Protection πŸ”‹
    • on: ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega32HVB, ATmega32HVBREVB, ATmega406, ATmega8HVA
  • CADC_ACC_vect β€” C ADC Accumulated Conversion Complete ✨
    • on: ATmega64HVE, ATmega64HVE2
  • CADC_CONV_vect β€” C ADC Instantaneous Conversion Complete ✨
    • on: ATmega64HVE, ATmega64HVE2
  • CADC_REG_CUR_vect β€” C ADC Regular Current ⚑
    • on: ATmega64HVE, ATmega64HVE2
  • CANIT_vect β€” CAN Transfer Complete or Error πŸš—
    • on: AT90CAN128, AT90CAN32, AT90CAN64
  • CAN_INT_vect β€” CAN MOB, Burst, General Errors πŸš—
    • on: ATmega16M1, ATmega32C1, ATmega32M1, ATmega64C1, ATmega64M1
  • CAN_TOVF_vect β€” CAN Timer Overflow πŸš—
    • on: ATmega16M1, ATmega32C1, ATmega32M1, ATmega64C1, ATmega64M1
  • CCADC_ACC_vect β€” Coloumb Counter ADC Accumulator πŸ”‹
    • on: ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega32HVB, ATmega32HVBREVB, ATmega406, ATmega8HVA
  • CCADC_CONV_vect β€” Coulomb Counter ADC Conversion Complete πŸ”‹
    • on: ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega32HVB, ATmega32HVBREVB, ATmega406, ATmega8HVA
  • CCADC_REG_CUR_vect β€” Coloumb Counter ADC Regular Current ⚑
    • on: ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega32HVB, ATmega32HVBREVB, ATmega406, ATmega8HVA
  • CCL_CCL_vect β€” CCL IRQs 🧩
    • on: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny424, ATtiny426, ATtiny427, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48
  • CFD_vect β€” Clock failure detection ⌚
    • on: ATmega328PB
  • CHDET_vect β€” Charger Detect πŸ”Œ
    • on: ATmega16HVB, ATmega16HVBREVB, ATmega32HVB, ATmega32HVBREVB
  • CLKCTRL_CFD_vect β€” CLKCTRL IRQs πŸ‘‘
    • on: AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48
  • CPRES_vect β€” Card Presence Detection πŸ’³
    • on: AT90SCR100
  • CRCSCAN_NMI_vect β€” CRCSCAN IRQs 🧐
    • on: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614, ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827
  • DFFLR_vect β€” Data FIFO fill level reached πŸ“₯
    • on: ATA5702M322, ATA5782, ATA5831
  • DFOUE_vect β€” Data FIFO Overflow or Underflow Error πŸ’€
    • on: ATA5702M322, ATA5782, ATA5831
  • DMA_CH0_vect β€” Channel 0 πŸŒ€
    • on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128B3, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega384C3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3
  • DMA_CH1_vect β€” Channel 1 πŸŒ€
    • on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128B3, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega384C3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3
  • DMA_CH2_vect β€” Channel 2 πŸŒ€
    • on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U
  • DMA_CH3_vect β€” Channel 3 πŸŒ€
    • on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U
  • E2CINT_vect β€” EEPROM Error Correction πŸ’Ύ
    • on: ATA5702M322
  • EDMA_CH0_vect β€” EDMA Channel 0 πŸŒ€
    • on: ATxmega32E5, ATxmega8E5
  • EDMA_CH1_vect β€” EDMA Channel 1 πŸŒ€
    • on: ATxmega32E5, ATxmega8E5
  • EDMA_CH2_vect β€” EDMA Channel 2 πŸŒ€
    • on: ATxmega32E5, ATxmega8E5
  • EDMA_CH3_vect πŸ’œ β€” EDMA Channel 3 β€” shows up on ATxmega32E5, ATxmega8E5.
  • EEPROM_READY_vect β€” EEPROM Ready 🌸 β€” on ATtiny2313.
  • EEPROM_Ready_vect β€” EEPROM Ready β€” on ATtiny2313A, ATtiny4313. (yes bestie the capitalization is different from the one above, and no I will not be fixing it, that's just how it is πŸ’…)
  • EEREADY_vect β€” EEPROM Ready β€” on ATA5790, ATA5790N, ATA5795, ATA6285, ATA6286, ATA6289.
  • EE_RDY_vect β€” EEPROM Ready β€” on AT90S2333, AT90S4433, AT90S4434, AT90S8535, ATA5272, ATA5505, ATA6616C, ATA6617C, ATA664251, ATmega16, ATmega161, ATmega162, ATmega163, ATmega16A, ATmega32, ATmega323, ATmega32A, ATmega8, ATmega8515, ATmega8535, ATmega8A, ATtiny12, ATtiny13, ATtiny13A, ATtiny15, ATtiny1634, ATtiny167, ATtiny24, ATtiny24A, ATtiny25, ATtiny26, ATtiny261, ATtiny261A, ATtiny43U, ATtiny44, ATtiny441, ATtiny44A, ATtiny45, ATtiny461, ATtiny461A, ATtiny84, ATtiny841, ATtiny84A, ATtiny85, ATtiny861, ATtiny861A, ATtiny87.
  • EE_READY_vect β€” EEPROM Ready β€” on AT90CAN128, AT90CAN32, AT90CAN64, AT90PWM1, AT90PWM161, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, AT90PWM81, AT90SCR100, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATA6612C, ATA6613C, ATA6614Q, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega164A, ATmega164P, ATmega164PA, ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega16M1, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega325, ATmega3250, ATmega3250A, ATmega3250P, ATmega3250PA, ATmega325A, ATmega325P, ATmega325PA, ATmega328, ATmega328P, ATmega328PB, ATmega329, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA, ATmega32C1, ATmega32HVB, ATmega32HVBREVB, ATmega32M1, ATmega32U2, ATmega32U4, ATmega32U6, ATmega406, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega64, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega645, ATmega6450, ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega6490, ATmega6490A, ATmega6490P, ATmega649A, ATmega649P, ATmega64A, ATmega64C1, ATmega64HVE, ATmega64HVE2, ATmega64M1, ATmega64RFR2, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB, ATmega8HVA, ATmega8U2, ATtiny48, ATtiny828, ATtiny88.
  • ERDY_vect β€” EEPROM Ready β€” on ATA5702M322, ATA5782, ATA5831.

okay so now we hit the ones where the same name does double duty, and honestly? iconic behavior ✨

  • EXCM_vect β€” External Input Clock break down πŸ’€ β€” on ATA6285, ATA6286, ATA6289.
  • EXCM_vect β€” External input Clock Monitoring β€” on ATA5702M322, ATA5782, ATA5831. (same name, different meaning, different chips β€” read your device's datasheet before you @ me πŸ™ˆ)
  • EXCMINT_vect β€” External Input Clock Monitoring β€” on ATA5790, ATA5790N, ATA5795.
  • EXT_INT0_vect β€” External IRQ 0 β€” on ATtiny24, ATtiny24A, ATtiny44, ATtiny44A, ATtiny84, ATtiny84A.
  • EXXMINT_vect β€” External XTAL Oscillator Break Down β€” on ATA5790, ATA5790N, ATA5795.
  • FAULT_PROTECTION_vect β€” Timer/Counter1 Fault Protection πŸ›‘οΈ β€” on ATtiny261, ATtiny261A, ATtiny461, ATtiny461A, ATtiny861, ATtiny861A.
  • HSSPI_vect β€” High Speed SPI πŸ”₯ β€” on AT90SCR100.
  • IDFULL_vect β€” IDSCAN Full β€” on ATA5782, ATA5831.

and now, the external IRQ glow-up era πŸ‘‘

  • INT0_vect β€” External IRQ 0 β€” on AT90CAN128, AT90CAN32, AT90CAN64, AT90PWM1, AT90PWM161, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, AT90PWM81, AT90S1200, AT90S2313, AT90S2323, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, AT90SCR100, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATA5272, ATA5505, ATA5702M322, ATA5782, ATA5790, ATA5790N, ATA5795, ATA5831, ATA6285, ATA6286, ATA6289, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, ATA664251, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164A, ATmega164P, ATmega164PA, ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega16A, ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega16M1, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega32, ATmega323, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega325, ATmega3250, ATmega3250A, ATmega3250P, ATmega3250PA, ATmega325A, ATmega325P, ATmega325PA, ATmega328, ATmega328P, ATmega328PB, ATmega329, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA, ATmega32A, ATmega32C1, ATmega32HVB, ATmega32HVBREVB, ATmega32M1, ATmega32U2, ATmega32U4, ATmega32U6, ATmega406, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega64, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega645, ATmega6450, ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega6490, ATmega6490A, ATmega6490P, ATmega649A, ATmega649P, ATmega64A, ATmega64C1, ATmega64HVE, ATmega64HVE2, ATmega64M1, ATmega64RFR2, ATmega8, ATmega8515, ATmega8535, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB, ATmega8A, ATmega8HVA, ATmega8U2, ATtiny10, ATtiny102, ATtiny104, ATtiny11, ATtiny12, ATtiny13, ATtiny13A, ATtiny15, ATtiny1634, ATtiny167, ATtiny20, ATtiny22, ATtiny2313, ATtiny2313A, ATtiny25, ATtiny26, ATtiny261, ATtiny261A, ATtiny28, ATtiny4, ATtiny40, ATtiny4313, ATtiny43U, ATtiny441, ATtiny45, ATtiny461, ATtiny461A, ATtiny48, ATtiny5, ATtiny828, ATtiny841, ATtiny85, ATtiny861, ATtiny861A, ATtiny87, ATtiny88, ATtiny9.
  • INT1_vect β€” External IRQ 1 β€” on AT90CAN128, AT90CAN32, AT90CAN64, AT90PWM1, AT90PWM161, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, AT90PWM81, AT90S2313, AT90S2333, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, AT90SCR100, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATA5272, ATA5505, ATA5702M322, ATA5782, ATA5831, ATA6285, ATA6286, ATA6289, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, ATA664251, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164A, ATmega164P, ATmega164PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega16A, ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega16M1, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega32, ATmega323, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega328, ATmega328P, ATmega328PB, ATmega32A, ATmega32C1, ATmega32HVB, ATmega32HVBREVB, ATmega32M1, ATmega32U2, ATmega32U4, ATmega32U6, ATmega406, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega64, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega64A, ATmega64C1, ATmega64M1, ATmega64RFR2, ATmega8, ATmega8515, ATmega8535, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB, ATmega8A, ATmega8HVA, ATmega8U2, ATtiny167, ATtiny2313, ATtiny2313A, ATtiny261, ATtiny261A, ATtiny28, ATtiny4313, ATtiny461, ATtiny461A, ATtiny48, ATtiny828, ATtiny861, ATtiny861A, ATtiny87, ATtiny88.
  • INT2_vect β€” External IRQ 2 β€” on AT90CAN128, AT90CAN32, AT90CAN64, AT90PWM1, AT90PWM161, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, AT90PWM81, AT90SCR100, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega16, ATmega161, ATmega162, ATmega164A, ATmega164P, ATmega164PA, ATmega16A, ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega16M1, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega32, ATmega323, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega32A, ATmega32C1, ATmega32HVB, ATmega32HVBREVB, ATmega32M1, ATmega32U2, ATmega32U4, ATmega32U6, ATmega406, ATmega64, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega64A, ATmega64C1, ATmega64M1, ATmega64RFR2, ATmega8515, ATmega8535, ATmega8HVA, ATmega8U2.
  • INT3_vect β€” External IRQ 3 β€” on AT90CAN128, AT90CAN32, AT90CAN64, AT90PWM1, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, AT90SCR100, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega16HVB, ATmega16HVBREVB, ATmega16M1, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega32C1, ATmega32HVB, ATmega32HVBREVB, ATmega32M1, ATmega32U2, ATmega32U4, ATmega32U6, ATmega406, ATmega64, ATmega640, ATmega644RFR2, ATmega64A, ATmega64C1, ATmega64M1, ATmega64RFR2, ATmega8U2.
  • INT4_vect β€” External IRQ 4 β€” on AT90CAN128, AT90CAN32, AT90CAN64, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega16U2, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega32U2, ATmega32U6, ATmega64, ATmega640, ATmega644RFR2, ATmega64A, ATmega64RFR2, ATmega8U2.
  • INT5_vect β€” External IRQ 5 β€” on AT90CAN128, AT90CAN32, AT90CAN64, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega16U2, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega32U2, ATmega32U6, ATmega64, ATmega640, ATmega644RFR2, ATmega64A, ATmega64RFR2, ATmega8U2.
  • INT6_vect β€” External IRQ 6 β€” on AT90CAN128, AT90CAN32, AT90CAN64, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega32U2, ATmega32U4, ATmega32U6, ATmega64, ATmega640, ATmega644RFR2, ATmega64A, ATmega64RFR2, ATmega8U2.
  • INT7_vect β€” External IRQ 7 β€” on AT90CAN128, AT90CAN32, AT90CAN64, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega16U2, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega32U2, ATmega32U6, ATmega64, ATmega640, ATmega644RFR2, ATmega64A, ATmega64RFR2, ATmega8U2.

okay the ATA62xx girlies get their own little trio of timer/vibe watchers, obsessed 🌈

  • INTT0_vect β€” Timer0 Interval ⏰ β€” on ATA6285, ATA6286, ATA6289.
  • INTT1_vect β€” Timer1 Interval ⏰ β€” on ATA6285, ATA6286, ATA6289.
  • INTVM_vect β€” Voltage Monitor πŸ”‹ β€” on ATA6285, ATA6286, ATA6289.
  • IO_PINS_vect β€” External IRQ 0 β€” on ATtiny11, ATtiny12, ATtiny15, ATtiny26.
  • KEYBOARD_vect β€” Keyboard Input Changed ⌨️ β€” on AT90SCR100.
  • LCD_vect β€” (bestie the page cuts off right here, part 5 is gonna spill the tea on this one 😭)

LCD_INT_vect

Bestie it's literally LCD Start of Frame πŸ’…

Lives on: ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega329, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA, ATmega649, ATmega6490, ATmega6490A, ATmega6490P, ATmega649A, ATmega649P


LDFFLR_vect

LF Data FIFO Fill Level Reached β€” like, the FIFO got to the level and it's telling you 🫢

Lives on: ATxmega128B1, ATxmega128B3, ATxmega64B1, ATxmega64B3

LDFOUE_vect

LF Data FIFO Overflow or Underflow Error β€” bestie the FIFO done glitched 😭

Lives on: ATA5702M322

LFBCR_vect

LF Receiver Bit Count Reached ✨

Lives on: ATA5702M322

LFDBINT_vect

LF Receiver Data Buffer full β€” buffer's full, no more room, periodt.

Lives on: ATA5790, ATA5790N

LFDE_vect

LF Receiver Decoder Error πŸ™ˆ

Lives on: ATA5702M322

LFEOT_vect

LF Receiver End of Telegram β€” telegram said its piece and left πŸ’Œ

Lives on: ATA5702M322

LFFEINT_vect

LF Receiver Frame End

Lives on: ATA5702M322, ATA5790, ATA5790N

LFID0INT_vect

LF Receiver Identifier 0

Lives on: ATA5702M322, ATA5790, ATA5790N

LFID1INT_vect

LF Receiver Identifier 1

Lives on: ATA5702M322, ATA5790, ATA5790N

LFMDINT_vect

LF Receiver Manchester Decoder Error β€” the Manchester decoder is going through it πŸ’€

Lives on: ATA5790, ATA5790N

LFPBD_vect

LF Receiver PreBurst Detected

Lives on: ATA5702M322

LFREOB_vect

LF Receiver End of Burst

Lives on: ATA6285, ATA6286, ATA6289

LFRSCO_vect

LF Receiver RSSI measurement

Lives on: ATA5702M322

LFRSSINT_vect

LF Receiver RSSi measurement β€” yes lowercase i, that's how they wrote it, we don't question the source πŸ’…

Lives on: ATA5790, ATA5790N

LFRXB_vect

LF Receive Buffer

Lives on: ATmega... no wait β€” ATA6285, ATA6286, ATA6289

LFSDINT_vect

LF Receiver Signal Detect β€” signal found, slay πŸ“‘

Lives on: ATA5790, ATA5790N

LFTCOR_vect

LF Receiver Timer Compare Match

Lives on: ATA5702M322

LFWP_vect

LF Receiver Wake up β€” WAKE UP bestie β˜€οΈ

Lives on: ATA6285, ATA6286, ATA6289

LIN_ERR_vect

LIN Error

Lives on: ATA5272, ATA5505, ATA6616C, ATA6617C, ATA664251, ATmega16M1, ATmega32C1, ATmega32M1, ATmega64C1, ATmega64M1, ATtiny167, ATtiny87

LIN_ERROR_vect

LIN Error β€” same energy, different name, don't @ me

Lives on: ATmega64HVE, ATmega64HVE2

LIN_STATUS_vect

LIN Status

Lives on: ATmega64HVE, ATmega64HVE2

LIN_TC_vect

LIN Transfer Complete β€” transfer complete, ate and left no crumbs ✨

Lives on: ATA5272, ATA5505, ATA6616C, ATA6617C, ATA664251, ATmega16M1, ATmega32C1, ATmega32M1, ATmega64C1, ATmega64M1, ATtiny167, ATtiny87

LOWLEVEL_IO_PINS_vect

Low level Input on Port B β€” lowkey input on Port B 🫢

Lives on: ATtiny28

MVIO_MVIO_vect

MVIO IRQs

Lives on: AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32

NMI_vect

NMI IRQs β€” non-maskable, un-ignorable, main character energy for real πŸ‘‘

Lives on: AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48

NVMCTRL_EE_vect

NVMCTRL IRQs

Lives on: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614, ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32

NVMCTRL_NVMREADY_vect

NVMCTRL IRQs

Lives on: AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48

NVM_EE_vect

EEPROM β€” your lil non-volatile bestie πŸ’Ύ

Lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega32E5, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3, ATxmega64D3, ATxmega64D4, ATxmega8E5

NVM_SPM_vect

SPM β€” self-programming memory, doing its own thing ✨

Lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega32E5, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3, ATxmega64D3, ATxmega64D4, ATxmega8E5

OSC_OSCF_vect

External Oscillator Failure Interrupt (NMI) β€” not the vibe, the external oscillator gave out 😭

Lives on: ATxmega32D3

OSC_OSCF_vect

Oscillator Failure Interrupt (NMI) β€” yes, same vector name, different description, they did that πŸ’…

Lives on: ATxmega128A1U, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D4, ATxmega16A4U, ATxmega16C4, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32E5, ATxmega384C3, ATxmega384D3, ATxmega64A1U, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3, ATxmega64D4, ATxmega8E5

OSC_XOSCF_vect

External Oscillator Failure Interrupt (NMI)

Lives on: ATxmega128A1, ATxmega128A3, ATxmega128D3, ATxmega16A4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32D4, ATxmega64A1, ATxmega64A3, ATxmega64D3

OVRIT_vect

CAN Timer Overrun β€” the CAN timer ran past its stop, no skrrt skrrt πŸ’€

Lives on: AT90CAN128, AT90CAN32, AT90CAN64

PCI0_vect

Pin Change IRQ 0

Lives on: ATA5702M322, ATA5782, ATA5831

PCI1_vect

Pin Change IRQ 1

Lives on: ATA5702M322, ATA5782, ATA5831

PCINT0_vect

Pin Change IRQ 0 β€” our other pin-change bestie, and yes there's a LOT of chips here 🫢

Lives on: AT90SCR100, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATA5272, ATA5505, ATA5790, ATA5790N, ATA5795, ATA6285, ATA6286, ATA6289, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, ATA664251, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega162, ATmega164A, ATmega164P, ATmega164PA, ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega16M1, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega325, ATmega3250, ATmega3250A, ATmega3250P, ATmega3250PA, ATmega325A, ATmega325P, ATmega325PA, ATmega328, ATmega328P, ATmega328PB, ATmega329, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA, ATmega32C1, ATmega32HVB, ATmega32HVBREVB, ATmega32M1, ATmega32U2, ATmega32U4, ATmega32U6, ATmega406, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega645, ATmega6450, ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega6490, ATmega6490A, ATmega6490P, ATmega649A, ATmega649P, ATmega64C1, ATmega64HVE, ATmega64HVE2, ATmega64M1, ATmega64RFR2, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB, ATmega8U2, ATtiny10, ATtiny102, ATtiny104, ATtiny13, ATtiny13A, ATtiny1634, ATtiny167, ATtiny20, ATtiny2313A, ATtiny24, ATtiny24A, ATtiny25, ATtiny4, ATtiny40, ATtiny4313, ATtiny43U, ATtiny44, ATtiny441, ATtiny44A, ATtiny45, ATtiny48, ATtiny5, ATtiny828, ATtiny84, ATtiny841, ATtiny84A, ATtiny85, ATtiny87, ATtiny88, ATtiny9

PCINT1_vect

Pin Change IRQ 1

Lives on: AT90SCR100, AT90USB162, AT90USB82, ATA5272, ATA5505, ATA5790, ATA5790N, ATA5795, ATA6285, ATA6286, ATA6289, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, ATA664251, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega162, ATmega164A, ATmega164P, ATmega164PA, ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega16HVB, ATmega16HVBREVB, ATmega16M1, ATmega16U2, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega325, ATmega3250, ATmega3250A, ATmega3250P, ATmega3250PA, ATmega325A, ATmega325P, ATmega325PA, ATmega328, ATmega328P, ATmega328PB, ATmega329, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA, ATmega32C1, ATmega32HVB, ATmega32HVBREVB, ATmega32M1, ATmega32U2, ATmega406, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega645, ATmega6450, ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega6490, ATmega6490A, ATmega6490P, ATmega649A, ATmega649P, ATmega64C1, ATmega64HVE, ATmega64HVE2, ATmega64M1, ATmega64RFR2, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB, ATmega8U2, ATtiny102, ATtiny104, ATtiny1634, ATtiny167, ATtiny20, ATtiny2313A, ATtiny24, ATtiny24A, ATtiny40, ATtiny4313, ATtiny43U, ATtiny44, ATtiny441, ATtiny44A, ATtiny48, ATtiny828, ATtiny84, ATtiny841, ATtiny84A, ATtiny87, ATtiny88

PCINT2_vect

Pin Change IRQ 2

🌸 PCINT3_vect

Pin Change IRQ 3 β€” it's the third pin-change interrupt in the lineup, i.e. the one that pings you when a pin in that group changes its level. classic.

Devices:

AT90SCR100, ATA6285, ATA6286, ATA6289, ATA6612C, ATA6613C, ATA6614Q,
ATmega1280, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128RFA1,
ATmega128RFR2, ATmega164A, ATmega164P, ATmega164PA, ATmega168,
ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega16M1,
ATmega2560, ATmega2564RFR2, ATmega256RFR2, ATmega324A, ATmega324P,
ATmega324PA, ATmega324PB, ATmega3250, ATmega3250A, ATmega3250P,
ATmega3250PA, ATmega328, ATmega328P, ATmega328PB, ATmega3290,
ATmega3290A, ATmega3290P, ATmega3290PA, ATmega32C1, ATmega32M1,
ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega640,
ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2,
ATmega6450, ATmega6450A, ATmega6450P, ATmega6490, ATmega6490A,
ATmega6490P, ATmega64C1, ATmega64M1, ATmega64RFR2, ATmega88, ATmega88A,
ATmega88P, ATmega88PA, ATmega88PB, ATtiny1634, ATtiny2313A, ATtiny40,
ATtiny4313, ATtiny48, ATtiny828, ATtiny88

πŸ¦‹ PCINT4_vect

Pin Change IRQ 4 β€” same vibe as the one above, but it's #4 and the guest list is slightly shorter. no notes.

Devices:

AT90SCR100, ATmega1284, ATmega1284P, ATmega164A, ATmega164P,
ATmega164PA, ATmega16M1, ATmega324A, ATmega324P, ATmega324PA,
ATmega324PB, ATmega3250, ATmega3250A, ATmega3250P, ATmega3250PA,
ATmega328PB, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA,
ATmega32C1, ATmega32M1, ATmega644, ATmega644A, ATmega644P, ATmega644PA,
ATmega6450, ATmega6450A, ATmega6450P, ATmega6490, ATmega6490A,
ATmega6490P, ATmega64C1, ATmega64M1, ATtiny48, ATtiny828, ATtiny88

πŸ’… PCINT_vect

Pin Change IRQ β€” no number, no drama, just the plain pin-change interrupt.

Devices:

ATmega324PB

it's giving "one single chip has this one and honestly? she's carrying it." πŸ’–


⭐ PLL_vect

PLL Lock Change β€” it fires when the PLL lock changes state.

Devices:

ATmega64HVE, ATmega64HVE2

πŸ‘‘ PORTA_INT0_vect

External IRQ 0 β€” port A's external interrupt 0. the XMEGA girlies own this one.

Devices:

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U,
ATxmega128B1, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4,
ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U,
ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU,
ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U,
ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega384C3,
ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U,
ATxmega64A4U, ATxmega64B1, ATxmega64C3, ATxmega64D3, ATxmega64D4

πŸ”₯ PORTA_INT1_vect

External IRQ 1 β€” port A, external interrupt 1. same exact squad as PORTA_INT0_vect, just the next interrupt number.

Devices:

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U,
ATxmega128B1, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4,
ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U,
ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU,
ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U,
ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega384C3,
ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U,
ATxmega64A4U, ATxmega64B1, ATxmega64C3, ATxmega64D3, ATxmega64D4

🌈 PORTA_INT_vect

External IRQ β€” the un-numbered port A external interrupt. only two besties get this one.

Devices:

ATxmega32E5, ATxmega8E5

✨ PORTA_PORT_vect

PORTA IRQs β€” this is the whole port A interrupt party, all the IRQs bundled together. and omg the guest list is a novel.

Devices:

ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809,
ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614,
ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny202,
ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217,
ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406,
ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426,
ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816,
ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32,
AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64,
AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32,
AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32DA28,
AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14,
AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48,
AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32,
AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32,
AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48

literally the entire tinyAVR/megaAVR/DA-DB-DD-DU-EA friend group showed up. ate. πŸ’…


🧚 PORTB_INT0_vect

External IRQ 0 β€” port B's external interrupt 0. note that the B3 variants have joined the chat here.

Devices:

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U,
ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4,
ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3,
ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B,
ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4,
ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4,
ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3,
ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3,
ATxmega64D3, ATxmega64D4

πŸ“ PORTB_INT1_vect

External IRQ 1 β€” port B, external interrupt 1. same crowd, next number.

Devices:

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U,
ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4,
ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3,
ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B,
ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4,
ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4,
ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3,
ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3,
ATxmega64D3, ATxmega64D4

πŸŽ€ PORTB_PORT_vect

PORTB IRQs β€” every port B IRQ, one vector. bestie this list is shorter than port A's because not as many chips have a port B full of interrupt-y pins.

Devices:

ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809,
ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614,
ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny204,
ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226,
ATtiny3227, ATtiny404, ATtiny406, ATtiny414, ATtiny416, ATtiny417,
ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807,
ATtiny814, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827,
AVR128DA48, AVR128DA64, AVR128DB48, AVR128DB64, AVR16EA48, AVR32DA48,
AVR32DB48, AVR32EA48, AVR64DA48, AVR64DA64, AVR64DB48, AVR64DB64,
AVR64EA48

πŸ’œ PORTC_INT0_vect

External IRQ 0 β€” port C external interrupt 0. the B3 girlies are here too.

Devices:

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U,
ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4,
ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3,
ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B,
ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4,
ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4,
ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3,
ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3,
ATxmega64D3, ATxmega64D4

🫢 PORTC_INT1_vect

External IRQ 1 β€” port C external interrupt 1. identical lineup, one number up.

Devices:

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U,
ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4,
ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3,
ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B,
ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4,
ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4,
ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3,
ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3,
ATxmega64D3, ATxmega64D4

πŸ’€ PORTC_INT_vect

External IRQ β€” the no-number port C external interrupt. two chips, that's it, that's the whole story.

Devices:

ATxmega32E5, ATxmega8E5

⭐ PORTC_PORT_vect

PORTC IRQs β€” all of port C's IRQs in one vector. the list goes on for so long omg 😭

Devices:

ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809,
ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1616,
ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny3214, ATtiny3216,
ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny406, ATtiny416,
ATtiny417, ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806,
ATtiny807, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827,
AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32,
AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32,
AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28,
AVR16EB32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32,
AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28,
AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64,
AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20,
AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32,
AVR64EA48

🌈 PORTD_INT0_vect

External IRQ 0 β€” port D external interrupt 0. B3 chips are in, as always.

Devices:

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U,
ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4,
ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3,
ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B,
ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4,
ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4,
ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3,
ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3,
ATxmega64D3, ATxmega64D4

πŸ¦‹ PORTD_INT1_vect

External IRQ 1 β€” port D external interrupt 1. yes bestie, same list again, i don't make the rules.

Devices:

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U,
ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4,
ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3,
ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B,
ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4,
ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4,
ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3,
ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3,
ATxmega64D3, ATxmega64D4

πŸŽ€ PORTD_INT_vect

External IRQ β€” un-numbered port D external interrupt. just the two E5 girlies. iconic duo behavior.

Devices:

ATxmega32E5, ATxmega8E5

✨ PORTD_PORT_vect

PORTD IRQs β€” all of port D's IRQs, one vector. notice this crew is all megaAVR + the modern AVR DA/DB/DD/DU/EA family, no tinyAVR 0/1/2 series in sight. iykyk.

Devices:

ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809,
ATmega808, ATmega809, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64,
AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20,
AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14,
AVR16EB20, AVR16EB28, AVR16EB32, AVR32DA28, AVR32DA32, AVR32DA48,
AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28,
AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32,
AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64,
AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32,
AVR64EA28, AVR64EA32, AVR64EA48

⭐ PORTE_INT0_vect

External IRQ 0 β€” port E external interrupt 0.

and that's exactly where this part cuts off β€” no device list for this one in the source, bestie, so don't come for me. the saga continues next part, stay tuned πŸ’–

πŸ¦‹ PORTE_INT1_vect

External IRQ 1 β€” bestie, it's giving external interrupt energy, and here's exactly which chips are in the group chat:

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U,
ATxmega128B1, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4,
ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U,
ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU,
ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U,
ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega384C3,
ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U,
ATxmega64A4U, ATxmega64B1, ATxmega64C3, ATxmega64D3, ATxmega64D4

πŸ’… PORTE_PORT_vect

PORTE IRQs β€” the whole port E interrupt situation, no cap:

ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809,
ATmega808, ATmega809, AVR128DA48, AVR128DA64, AVR128DB48, AVR128DB64,
AVR16EA48, AVR32DA48, AVR32DB48, AVR32EA48, AVR64DA48, AVR64DA64,
AVR64DB48, AVR64DB64, AVR64EA48

🌸 PORTF_INT0_vect

External IRQ 0 β€” the external interrupt 0 for port F, periodt:

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128C3,
ATxmega128D3, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3,
ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U,
ATxmega256C3, ATxmega256D3, ATxmega32C3, ATxmega32D3, ATxmega384C3,
ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U,
ATxmega64C3, ATxmega64D3

✨ PORTF_INT1_vect

External IRQ 1 β€” same vibe, different interrupt line:

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128C3,
ATxmega128D3, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3,
ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U,
ATxmega256C3, ATxmega256D3, ATxmega32C3, ATxmega32D3, ATxmega384C3,
ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U,
ATxmega64C3, ATxmega64D3

πŸ’– PORTF_PORT_vect

PORTF IRQs β€” the full port F interrupt menu, and it is long, bestie:

ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809,
ATmega808, ATmega809, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64,
AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20,
AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14,
AVR16EB20, AVR16EB28, AVR16EB32, AVR32DA28, AVR32DA32, AVR32DA48,
AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28,
AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32,
AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64,
AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32,
AVR64EA28, AVR64EA32, AVR64EA48

πŸŽ€ PORTG_INT0_vect

External IRQ 0 β€” small but mighty, and yes she ate:

ATxmega128B1, ATxmega128B3, ATxmega64B1, ATxmega64B3

πŸ¦‹ PORTG_INT1_vect

External IRQ 1 β€” the sequel, and it slays just as hard:

ATxmega128B1, ATxmega128B3, ATxmega64B1, ATxmega64B3

πŸ’œ PORTG_PORT_vect

PORTG IRQs β€” only four chips carry this one, and honestly? Main character energy:

AVR128DA64, AVR128DB64, AVR64DA64, AVR64DB64

πŸ”₯ PORTH_INT0_vect

External IRQ 0:

ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U

πŸ”₯ PORTH_INT1_vect

External IRQ 1:

ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U

⭐ PORTJ_INT0_vect

External IRQ 0:

ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U

⭐ PORTJ_INT1_vect

External IRQ 1:

ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U

🌈 PORTK_INT0_vect

External IRQ 0:

ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U

🌈 PORTK_INT1_vect

External IRQ 1:

ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U

πŸ“ PORTM_INT0_vect

External IRQ 0:

ATxmega128B1, ATxmega128B3, ATxmega64B1, ATxmega64B3

πŸ“ PORTM_INT1_vect

External IRQ 1:

ATxmega128B1, ATxmega128B3, ATxmega64B1, ATxmega64B3

🫢 PORTQ_INT0_vect

External IRQ 0:

ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U

🫢 PORTQ_INT1_vect

External IRQ 1:

ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U

πŸ‘‘ PORTR_INT0_vect

External IRQ 0 β€” okay this list is huge, and she's booked and busy:

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U,
ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4,
ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3,
ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B,
ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4,
ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4,
ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3,
ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3,
ATxmega64D3, ATxmega64D4

πŸ‘‘ PORTR_INT1_vect

External IRQ 1 β€” same roster, different line:

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U,
ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4,
ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3,
ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B,
ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4,
ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4,
ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3,
ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3,
ATxmega64D3, ATxmega64D4

🧚 PORTR_INT_vect

External IRQ β€” no number, just vibes:

ATxmega32E5, ATxmega8E5

πŸ’€ PSC0_CAPT_vect

PSC0 Capture Event:

AT90PWM1, AT90PWM161, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3,
AT90PWM316, AT90PWM3B, AT90PWM81

πŸ’€ PSC0_EC_vect

PSC0 End Cycle:

AT90PWM1, AT90PWM161, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3,
AT90PWM316, AT90PWM3B, AT90PWM81

πŸ’€ PSC0_EEC_vect

PSC0 End of Enhanced Cycle β€” enhanced, as she should be:

AT90PWM161, AT90PWM81

πŸ”₯ PSC1_CAPT_vect

PSC1 Capture Event:

AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B

πŸ”₯ PSC1_EC_vect

PSC1 End Cycle:

AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B

✨ PSC2_CAPT_vect

PSC2 Capture Event:

AT90PWM1, AT90PWM161, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3,
AT90PWM316, AT90PWM3B, AT90PWM81

✨ PSC2_EC_vect

PSC2 End Cycle:

AT90PWM1, AT90PWM161, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3,
AT90PWM316, AT90PWM3B, AT90PWM81

✨ PSC2_EEC_vect

PSC2 End of Enhanced Cycle:

AT90PWM161, AT90PWM81

🌟 PSC_EC_vect

PSC End of Cycle:

ATmega16M1, ATmega32C1, ATmega32M1, ATmega64C1, ATmega64M1

🌟 PSC_FAULT_vect

PSC Fault:

ATmega16M1, ATmega32C1, ATmega32M1, ATmega64C1, ATmega64M1

🌸 PTC_EOC_vect

PTC End of Conversion:

ATmega324PB, ATmega328PB

🌸 PTC_PTC_vect

PTC IRQs β€” just the DA-family girlies on this one:

AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR32DA28, AVR32DA32,
AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64

πŸŽ€ PTC_WCOMP_vect

PTC Window Comparator:

ATmega324PB

πŸŽ€ PTC_WCOMP_vect

PTC Window Comparator mode β€” same name, but now with mode, and a different chip:

ATmega328PB

🫧 QTRIP_vect

Touch Sensing β€” touchy feely, literally:

ATtiny1634, ATtiny20, ATtiny40, ATtiny828

⭐ RTC32_COMP_vect

Compare:

ATxmega256A3B, ATxmega256A3BU

⭐ RTC32_OVF_vect

Overflow:

ATxmega256A3B, ATxmega256A3BU

πŸ•°οΈ RTCINT_vect

Real Time Clock:

ATA5790, ATA5790N, ATA5795

πŸ•°οΈ RTC_CNT_vect

RTC IRQs β€” okay bestie, deep breath, this device list is enormous:

ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809,
ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614,
ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny202,
ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217,
ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406,
ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426,
ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816,
ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32,
AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64,
AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32,
AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32DA28,
AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14,
AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48,
AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32,
AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32,
AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48

πŸ•°οΈ RTC_COMP_vect

Compare β€” the XMEGA crew clocking in:

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U,
ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4,
ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3,
ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3U,
ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3,
ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega32E5, ATxmega384C3,
ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U,
ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3, ATxmega64D3,
ATxmega64D4, ATxmega8E5

πŸ•°οΈ RTC_OVF_vect

Overflow β€” exact same lineup, and honestly iconic for it:

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U,
ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4,
ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3,
ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3U,
ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3,
ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega32E5, ATxmega384C3,
ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U,
ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3, ATxmega64D3,
ATxmega64D4, ATxmega8E5

🎐 RTC_PIT_vect

RTC IRQs β€” yet another massive guest list, bestie, we're so back:

ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809,
ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614,
ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny202,
ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217,
ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406,
ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426,
ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816,
ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32,
AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64,
AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32,
AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32DA28,
AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14,
AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48,
AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32,
AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32,
AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48

πŸ’³ SCIB_vect

Smart Card Reader Interface β€” one chip, one vibe:

AT90SCR100

πŸŽ€ SCNT_BACKOFF_vect

Symbol counter backoff β€” the symbol counter is like, backing off, okurr πŸ’…

Lives on: ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2

πŸŽ€ SCNT_CMP1_vect

Symbol counter compare match 1

Lives on: ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2

πŸŽ€ SCNT_CMP2_vect

Symbol counter compare match 2

Lives on: ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2

πŸŽ€ SCNT_CMP3_vect

Symbol counter compare match 3

Lives on: ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2

πŸŽ€ SCNT_OVFL_vect

Symbol counter Overflow β€” she's overflowed, it's giving chaos 🌊

Lives on: ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2

πŸŽ€ SENINT_vect

Sensor Interface

Lives on: ATA6285, ATA6286, ATA6289

πŸŽ€ SFFLR_vect

RSSI/Preamble FIFO fill level reached

Lives on: ATA5702M322, ATA5782, ATA5831

πŸŽ€ SFOUE_vect

RSSI/Preamble FIFO Overflow or Underflow Error β€” bestie the FIFO is not okay 😭

Lives on: ATA5702M322, ATA5782, ATA5831

πŸŽ€ SPI0_INT_vect

SPI0 IRQs

Lives on: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614, ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48

πŸŽ€ SPI0_STC_vect

SPI Serial Transfer Complete

Lives on: ATmega328PB

πŸŽ€ SPI0_STC_vect

SPI0 Serial Transfer Complete β€” yes bestie, same vector name, but it's the SPI0 flavour this time, different chip, no cap ✨

Lives on: ATmega324PB

πŸŽ€ SPI1_INT_vect

SPI1 IRQs

Lives on: AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64

πŸŽ€ SPI1_STC_vect

SPI1 Serial Transfer Complete

Lives on: ATmega324PB, ATmega328PB

πŸŽ€ SPI2_vect

SPI2 β€” third SPI, she's thriving πŸ’…

Lives on: ATA5702M322

πŸŽ€ SPI_vect

SPI Serial Transfer Complete

Lives on: ATA5702M322, ATA5782, ATA5831

πŸŽ€ SPI_vect

Serial Peripheral Interface β€” yup, same name again, this one's just vibing as the SPI itself πŸ¦‹

Lives on: ATtiny20, ATtiny40, ATtiny441, ATtiny841

πŸŽ€ SPIC_INT_vect

SPI β€” the C stands for... it's the SPI C interrupt, that's the vibe

Lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega32E5, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3, ATxmega64D3, ATxmega64D4, ATxmega8E5

πŸŽ€ SPID_INT_vect

SPI β€” D flavour this time, iconic πŸ’œ

Lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64C3, ATxmega64D3, ATxmega64D4

πŸŽ€ SPIE_INT_vect

SPI β€” E flavour, and the crowd goes mild but respectfully 🫢

Lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U

πŸŽ€ SPIF_INT_vect

SPI β€” F flavour, and she's on like four chips, lowkey exclusive πŸ’€

Lives on: ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U

πŸŽ€ SPISTC_vect

SPI Serial Transfer Complete

Lives on: ATA5790, ATA5790N, ATA5795, ATA6285, ATA6286, ATA6289

πŸŽ€ SPI_STC_vect

SPI Serial Transfer Complete β€” okay this list is massive, grab a snack bestie πŸ“

Lives on: AT90CAN128, AT90CAN32, AT90CAN64, AT90PWM1, AT90PWM161, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, AT90PWM81, AT90S4434, AT90S8535, AT90SCR100, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATA5272, ATA5505, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, ATA664251, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega162, ATmega163, ATmega164A, ATmega164P, ATmega164PA, ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega16M1, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324A, ATmega324P, ATmega324PA, ATmega325, ATmega3250, ATmega3250A, ATmega3250P, ATmega3250PA, ATmega325A, ATmega325P, ATmega325PA, ATmega328, ATmega328P, ATmega329, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA, ATmega32C1, ATmega32HVB, ATmega32HVBREVB, ATmega32M1, ATmega32U2, ATmega32U4, ATmega32U6, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega64, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega645, ATmega6450, ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega6490, ATmega6490A, ATmega6490P, ATmega649A, ATmega649P, ATmega64A, ATmega64C1, ATmega64HVE, ATmega64HVE2, ATmega64M1, ATmega64RFR2, ATmega8535, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB, ATmega8HVA, ATmega8U2, ATtiny167, ATtiny828, ATtiny87

πŸŽ€ SPI_STC_vect

Serial Transfer Complete β€” same vector name, slimmer description, no "SPI" prefix, we love a remix ✨

Lives on: AT90S2333, AT90S4414, AT90S4433, AT90S8515, ATmega16, ATmega161, ATmega16A, ATmega32, ATmega323, ATmega32A, ATmega8, ATmega8515, ATmega8A, ATtiny48, ATtiny88

πŸŽ€ SPM_vect

SPM Ready

Lives on: ATmega16HVB, ATmega16HVBREVB, ATmega32HVB, ATmega32HVBREVB, ATmega64HVE, ATmega64HVE2

πŸŽ€ SPMR_vect

Store Program Memory Ready

Lives on: ATA5702M322, ATA5782, ATA5831

πŸŽ€ SPMREADY_vect

Store Program Memory Ready

Lives on: ATA5790, ATA5790N, ATA5795

πŸŽ€ SPM_RDY_vect

Store Program Memory Ready

Lives on: ATA6285, ATA6286, ATA6289, ATmega16, ATmega162, ATmega16A, ATmega32, ATmega323, ATmega32A, ATmega8, ATmega8515, ATmega8535, ATmega8A

πŸŽ€ SPM_READY_vect

Store Program Memory Ready β€” another one, and this list ate 🍽️

Lives on: AT90CAN128, AT90CAN32, AT90CAN64, AT90PWM1, AT90PWM161, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, AT90PWM81, AT90SCR100, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega164A, ATmega164P, ATmega164PA, ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega168, ATmega168A, ATmega168P, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega16M1, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega325, ATmega3250, ATmega3250A, ATmega3250P, ATmega3250PA, ATmega325A, ATmega325P, ATmega325PA, ATmega328, ATmega328P, ATmega329, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA, ATmega32C1, ATmega32M1, ATmega32U2, ATmega32U4, ATmega32U6, ATmega406, ATmega48, ATmega48A, ATmega48P, ATmega64, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega645, ATmega6450, ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega6490, ATmega6490A, ATmega6490P, ATmega649A, ATmega649P, ATmega64A, ATmega64C1, ATmega64M1, ATmega64RFR2, ATmega88, ATmega88A, ATmega88P, ATmega8U2

πŸŽ€ SPM_Ready_vect

Store Program Memory Ready β€” note the cute lil lowercase eady, not me being obsessed with the casing πŸ™ˆ

Lives on: ATA6612C, ATA6613C, ATA6614Q, ATmega168PA, ATmega168PB, ATmega328PB, ATmega48PA, ATmega48PB, ATmega88PA, ATmega88PB, ATtiny828

πŸŽ€ SRX_FIFO_vect

SPI Rx Buffer

Lives on: ATA5702M322, ATA5782, ATA5831

πŸŽ€ SSM_vect

Sequencer State Machine

Lives on: ATA5702M322, ATA5782, ATA5831

πŸŽ€ STX_FIFO_vect

SPI Tx Buffer β€” twin of SRX_FIFO_vect, but for the transmit side, periodt πŸ’…

Lives on: ATA5702M322, ATA5782, ATA5831

πŸŽ€ SUPPLY_MON_vect

Supply Monitor β€” keeping an eye on the voltage fr fr πŸ‘€

Lives on: AT90SCR100

πŸŽ€ T0INT_vect

Timer0 Interval

Lives on: ATA5702M322, ATA5782, ATA5790, ATA5790N, ATA5795, ATA5831

πŸŽ€ T1COMP_vect

Timer/Counter1 Compare Match

Lives on: ATA5702M322, ATA5782, ATA5831

πŸŽ€ T1INT_vect

Timer1 Interval

Lives on: ATA5790, ATA5790N, ATA5795

πŸŽ€ T1OVF_vect

Timer/Counter1 Overflow

Lives on: ATA5702M322, ATA5782, ATA5831

πŸŽ€ T2CAP_vect

Timer/Counter2 Capture Event

Lives on: ATA6285, ATA6286, ATA6289

πŸŽ€ T2COM_vect

Timer/Counter2 Compare Match

Lives on: ATA6285, ATA6286, ATA6289

πŸŽ€ T2COMINT_vect

Timer/Counter2 Compare Match

Lives on: ATA5790, ATA5790N

πŸŽ€ T2COMINT_vect

Timer2 Compare Match β€” same name, slightly chiller description, she's different πŸ¦‹

Lives on: ATA5795

πŸŽ€ T2COMP_vect

Timer/Counter2 Compare Match β€” yes bestie this one has a P on the end, do not mix them up 😭

Lives on: ATA5702M322, ATA5782, ATA5831

πŸŽ€ T2OVF_vect

Timer/Counter2 Overflow

Lives on: ATA5702M322, ATA5782, ATA5831, ATA6285, ATA6286, ATA6289

πŸŽ€ T2OVFINT_vect

Timer/Counter2 Overflow

Lives on: ATA5790, ATA5790N

πŸŽ€ T2OVFINT_vect

Timer2 Overflow β€” again, same vector name, tiny description remix ✨

Lives on: ATA5795

πŸŽ€ T2RXB_vect

Timer2 SSI Receive Buffer

Lives on: ATA6285, ATA6286, ATA6289

πŸŽ€ T2TXB_vect

Timer2 SSI Transmit Buffer

Lives on: ATA6285, ATA6286, ATA6289

πŸŽ€ T2TXC_vect

Timer2 SSI Transmit Complete β€” the T2 SSI trio is complete, we love a set πŸŽ€

Lives on: ATA6285, ATA6286, ATA6289

πŸŽ€ T3CAP_vect

Timer/Counter3 Capture Event

Lives on: ATA5702M322, ATA5782, ATA5831, ATA6285, ATA6286, ATA6289

πŸŽ€ T3CAPINT_vect

Timer/Counter3 Capture Event

Lives on: ATA5790, ATA5790N

πŸŽ€ T3CAPINT_vect

Timer3 Capture β€” shortened glow-up description, same name tho πŸ’œ

Lives on: ATA5795

πŸŽ€ T3COM2INT_vect

Timer/Counter3 Compare Match 2 β€” she's on exactly one chip, main character energy only πŸ‘‘

Lives on: ATA5790N

πŸŽ€ T3COMA_vect

Timer/Counter3 Compare Match A

Lives on: ATA6285, ATA6286, ATA6289

πŸŽ€ T3COMB_vect

Timer/Counter3 Compare Match B

Lives on: ATA6285, ATA6286, ATA6289

πŸŽ€ T3COMINT_vect

Timer/Counter3 Compare Match

Lives on: ATA5790, ATA5790N

πŸŽ€ T3COMINT_vect

Timer3 Compare Match β€” the ATA5795 remix of the same name 🎢

Lives on: ATA5795

πŸŽ€ T3COMP_vect

Timer/Counter3 Compare Match β€” with the P, y'all know the drill by now πŸ’…

Lives on: ATA5702M322, ATA5782, ATA5831

πŸŽ€ T3OVF_vect

Timer/Counter3 Overflow

Lives on: ATA5702M322, ATA5782, ATA5831, ATA6285, ATA6286, ATA6289

πŸŽ€ T3OVFINT_vect

Timer/Counter3 Overflow

Lives on: ATA5790, ATA5790N

πŸŽ€ T3OVFINT_vect

Timer3 Overflow β€” once more, for the ATA5795 girlies 🌸

Lives on: ATA5795

🌊 T4CAP_vect

Timer/Counter4 Capture Event β€” something got captured, timer four is telling you about it, go look πŸ’–

Besties on this one: ATA5702M322, ATA5782, ATA5831

🌊 T4COMP_vect

Timer/Counter4 Compare Match β€” the compare matched, that's the whole vibe ✨

Besties on this one: ATA5702M322, ATA5782, ATA5831

🌊 T4OVF_vect

Timer/Counter4 Overflow β€” it rolled over, no cap 😭

Besties on this one: ATA5702M322, ATA5782, ATA5831

🌊 T5COMP_vect

Timer/Counter5 Compare Match β€” same energy as the four version but make it five πŸŽ€

Besties on this one: ATA5702M322, ATA5782, ATA5831

🌊 T5OVF_vect

Timer/Counter5 Overflow β€” five rolled over too, it's giving relentless

Besties on this one: ATA5702M322, ATA5782, ATA5831


πŸŽ€ TCA0_CMP1_vect

TCA0 IRQs πŸ”₯

Besties on this one: ATtiny3214

πŸ‘‘ TCA0_HUNF_vect

TCA0 IRQs β€” the underflow one, lowkey the most dramatic of the TCA0 crew 🌸

Besties on this one: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614, ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48

πŸŽ€ TCA0_LCMP0_vect

TCA0 IRQs β€” low compare channel zero, here to serve πŸ’…

Besties on this one: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614, ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48

πŸŽ€ TCA0_LCMP1_vect

TCA0 IRQs β€” channel one this time, and yes the guest list is slightly different, pay attention bestie πŸ™ˆ

Besties on this one: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614, ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48

πŸŽ€ TCA0_LCMP2_vect

TCA0 IRQs β€” channel two, closing out the low-compare trio, slay ✨

Besties on this one: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614, ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48

πŸ‘‘ TCA0_LUNF_vect

TCA0 IRQs β€” low underflow, and it's a very exclusive party fr fr πŸ₯‚

Besties on this one: ATtiny3214

πŸ‘‘ TCA0_OVF_vect

TCA0 IRQs β€” overflow! main character energy, obviously πŸ’–

Besties on this one: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614, ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48


πŸ¦‹ TCA1_HUNF_vect

TCA1 IRQs β€” first of the second TCA, underflow edition 🫢

Besties on this one: AVR128DA48, AVR128DA64, AVR128DB48, AVR128DB64, AVR16EA48, AVR32DA48, AVR32DB48, AVR32EA48, AVR64DA48, AVR64DA64, AVR64DB48, AVR64DB64, AVR64EA48

πŸ¦‹ TCA1_LCMP0_vect

TCA1 IRQs β€” low compare zero, honestly a whole aesthetic πŸ’œ

Besties on this one: AVR128DA48, AVR128DA64, AVR128DB48, AVR128DB64, AVR16EA48, AVR32DA48, AVR32DB48, AVR32EA48, AVR64DA48, AVR64DA64, AVR64DB48, AVR64DB64, AVR64EA48

πŸ¦‹ TCA1_LCMP1_vect

TCA1 IRQs β€” low compare one, same guest list, still iconic πŸŽ€

Besties on this one: AVR128DA48, AVR128DA64, AVR128DB48, AVR128DB64, AVR16EA48, AVR32DA48, AVR32DB48, AVR32EA48, AVR64DA48, AVR64DA64, AVR64DB48, AVR64DB64, AVR64EA48

πŸ¦‹ TCA1_LCMP2_vect

TCA1 IRQs β€” low compare two, the trilogy is complete, periodt πŸ’…

Besties on this one: AVR128DA48, AVR128DA64, AVR128DB48, AVR128DB64, AVR16EA48, AVR32DA48, AVR32DB48, AVR32EA48, AVR64DA48, AVR64DA64, AVR64DB48, AVR64DB64, AVR64EA48

πŸ¦‹ TCA1_OVF_vect

TCA1 IRQs β€” and it overflowed, we love a full circle moment 🌈

Besties on this one: AVR128DA48, AVR128DA64, AVR128DB48, AVR128DB64, AVR16EA48, AVR32DA48, AVR32DB48, AVR32EA48, AVR64DA48, AVR64DA64, AVR64DB48, AVR64DB64, AVR64EA48


⭐ TCB0_INT_vect

TCB0 IRQs β€” the TCB crew starts here, big list, big energy πŸ”₯

Besties on this one: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614, ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48

⭐ TCB1_INT_vect

TCB1 IRQs β€” channel one of the TCB squad, slightly different crowd, stay woke πŸ‘€

Besties on this one: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1614, ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny424, ATtiny426, ATtiny427, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48

⭐ TCB2_INT_vect

TCB2 IRQs β€” two! and ngl this list is shorter, the ATtinys dipped πŸ’€

Besties on this one: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64EA28, AVR64EA32, AVR64EA48

⭐ TCB3_INT_vect

TCB3 IRQs β€” three, and it's getting exclusive up in here πŸ™ˆ

Besties on this one: ATmega1609, ATmega3209, ATmega4809, ATmega809, AVR128DA48, AVR128DA64, AVR128DB48, AVR128DB64, AVR16EA48, AVR32DA48, AVR32DB48, AVR32EA48, AVR64DA48, AVR64DA64, AVR64DB48, AVR64DB64, AVR64EA48

⭐ TCB4_INT_vect

TCB4 IRQs β€” four, tiny invite list, very VIP, iykyk πŸ‘‘

Besties on this one: AVR128DA64, AVR128DB64, AVR64DA64, AVR64DB64


🧚 TCC0_CCA_vect

Compare or Capture A β€” ATxmega era, we're time traveling bestie ⏳

Besties on this one: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128B3, ATxmega128D3, ATxmega16A4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32D3, ATxmega32D4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64B1, ATxmega64B3, ATxmega64D3

🧚 TCC0_CCB_vect

Compare or Capture B β€” next letter, same iconic ATxmega guest list πŸ’«

Besties on this one: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128B3, ATxmega128D3, ATxmega16A4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32D3, ATxmega32D4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64B1, ATxmega64B3, ATxmega64D3

🧚 TCC0_CCC_vect

Compare or Capture C β€” C for cute and also for channel C πŸŽ€

Besties on this one: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128B3, ATxmega128D3, ATxmega16A4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32D3, ATxmega32D4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64B1, ATxmega64B3, ATxmega64D3

🧚 TCC0_CCD_vect

Compare or Capture D β€” the fourth channel, serving finale energy 🌸

Besties on this one:

  • TCC0_ERR_vect β€” Error πŸ’₯ β€” on ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128B3, ATxmega128D3, ATxmega16A4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32D3, ATxmega32D4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64B1, ATxmega64B3, ATxmega64D3
  • TCC0_OVF_vect β€” Overflow 🌊 β€” on ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128B3, ATxmega128D3, ATxmega16A4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32D3, ATxmega32D4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64B1, ATxmega64B3, ATxmega64D3
  • TCC1_CCA_vect β€” Compare or Capture A 🎯 β€” on ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3, ATxmega64D3, ATxmega64D4
  • TCC1_CCB_vect β€” Compare or Capture B 🎯 β€” on ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3, ATxmega64D3, ATxmega64D4
  • TCC1_ERR_vect β€” Error πŸ’₯ β€” on ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3, ATxmega64D3, ATxmega64D4
  • TCC1_OVF_vect β€” Overflow 🌊 β€” on ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3, ATxmega64D3, ATxmega64D4

okay so now we're in the TCC2 zone and bestie, these are the split-timer girlies πŸ’… β€” high byte and low byte doing their own separate lil things:

  • TCC2_HUNF_vect β€” High Byte Underflow 😭 β€” on ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128C3, ATxmega128D4, ATxmega16A4U, ATxmega16C4, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64A4U, ATxmega64C3, ATxmega64D4
  • TCC2_LCMPA_vect β€” Low Byte Compare A 🎯 β€” on ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128C3, ATxmega128D4, ATxmega16A4U, ATxmega16C4, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64A4U, ATxmega64C3, ATxmega64D4
  • TCC2_LCMPB_vect β€” Low Byte Compare B 🎯 β€” on ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128C3, ATxmega128D4, ATxmega16A4U, ATxmega16C4, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64A4U, ATxmega64C3, ATxmega64D4
  • TCC2_LCMPC_vect β€” Low Byte Compare C 🎯 β€” on ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128C3, ATxmega128D4, ATxmega16A4U, ATxmega16C4, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64A4U, ATxmega64C3, ATxmega64D4
  • TCC2_LCMPD_vect β€” Low Byte Compare D 🎯 β€” on ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128C3, ATxmega128D4, ATxmega16A4U, ATxmega16C4, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64A4U, ATxmega64C3, ATxmega64D4
  • TCC2_LUNF_vect β€” Low Byte Underflow 😭 β€” on ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128C3, ATxmega128D4, ATxmega16A4U, ATxmega16C4, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64A4U, ATxmega64C3, ATxmega64D4

and now for the ATxmegaE5 exclusives ✨ β€” these ones only live on two chips and honestly? main character energy πŸ‘‘:

  • TCC4_CCA_vect β€” Channel A Compare or Capture 🎯 β€” on ATxmega32E5, ATxmega8E5
  • TCC4_CCB_vect β€” Channel B Compare or Capture 🎯 β€” on ATxmega32E5, ATxmega8E5
  • TCC4_CCC_vect β€” Channel C Compare or Capture 🎯 β€” on ATxmega32E5, ATxmega8E5
  • TCC4_CCD_vect β€” Channel D Compare or Capture 🎯 β€” on ATxmega32E5, ATxmega8E5
  • TCC4_ERR_vect β€” Error πŸ’₯ β€” on ATxmega32E5, ATxmega8E5
  • TCC4_OVF_vect β€” Overflow 🌊 β€” on ATxmega32E5, ATxmega8E5
  • TCC5_CCA_vect β€” Channel A Compare or Capture 🎯 β€” on ATxmega32E5, ATxmega8E5
  • TCC5_CCB_vect β€” Channel B Compare or Capture 🎯 β€” on ATxmega32E5, ATxmega8E5
  • TCC5_ERR_vect β€” Error πŸ’₯ β€” on ATxmega32E5, ATxmega8E5
  • TCC5_OVF_vect β€” Overflow 🌊 β€” on ATxmega32E5, ATxmega8E5

TCD0 incoming πŸ¦‹ β€” a whole quartet of Compare-or-Capture channels plus the usual error/overflow drama:

  • TCD0_CCA_vect β€” Compare or Capture A 🎯 β€” on ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128D3, ATxmega16A4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32D3, ATxmega32D4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64D3
  • TCD0_CCB_vect β€” Compare or Capture B 🎯 β€” on ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128D3, ATxmega16A4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32D3, ATxmega32D4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64D3
  • TCD0_CCC_vect β€” Compare or Capture C 🎯 β€” on ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128D3, ATxmega16A4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32D3, ATxmega32D4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64D3
  • TCD0_CCD_vect β€” Compare or Capture D 🎯 β€” on ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128D3, ATxmega16A4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32D3, ATxmega32D4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64D3
  • TCD0_ERR_vect β€” Error πŸ’₯ β€” on ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128D3, ATxmega16A4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32D3, ATxmega32D4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64D3
  • TCD0_OVF_vect β€” Overflow 🌊 β€” on ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128D3, ATxmega16A4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32D3, ATxmega32D4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64D3

okay so there's ANOTHER TCD0_OVF_vect and bestie, it's a whole different vibe check πŸ’… β€” this one's tagged "TCD0 IRQs" and it shows up on the tinyAVR + modern AVR squad, plus its partner in crime TCD0_TRIG_vect (also "TCD0 IRQs"):

  • TCD0_OVF_vect (TCD0 IRQs) β€” on ATtiny1614, ATtiny1616, ATtiny1617, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny814, ATtiny816, ATtiny817, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32
  • TCD0_TRIG_vect (TCD0 IRQs) β€” on ATtiny1614, ATtiny1616, ATtiny1617, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny814, ATtiny816, ATtiny817, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32

next up TCD1 β€” same energy, two compare channels and the error/overflow crew 🌸:

  • TCD1_CCA_vect β€” Compare or Capture A 🎯 β€” on ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U
  • TCD1_CCB_vect β€” Compare or Capture B 🎯 β€” on ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U
  • TCD1_ERR_vect β€” Error πŸ’₯ β€” on ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U
  • TCD1_OVF_vect β€” Overflow 🌊 β€” on ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U

and we're starting TCD2, the split-timer sister 🫢 β€” first up, the high byte underflow:

  • TCD2_HUNF_vect β€” High Byte Underflow 😭 β€” on ATxmega128A3U, ATxmega128A4U, ATxmega128C3, ATxmega128D4, ATxmega16A4U, ATxmega16C4, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64A4U, ATxmega64C3, ATxmega64D4
  • TCD2_LCMPA_vect β€” Low Byte Compare A 🎯

Okay so we're still deep in the vector roster, bestie, and it is long β€” but every single one of these little gremlins matters, so we're listing them all πŸ’…

  • TCD2_LCMPB_vect β€” Low Byte Compare B
    • lives on: ATxmega128A3U, ATxmega128A4U, ATxmega128C3, ATxmega128D4, ATxmega16A4U, ATxmega16C4, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64A4U, ATxmega64C3, ATxmega64D4
  • TCD2_LCMPC_vect β€” Low Byte Compare C
    • lives on: ATxmega128A3U, ATxmega128A4U, ATxmega128C3, ATxmega128D4, ATxmega16A4U, ATxmega16C4, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64A4U, ATxmega64C3, ATxmega64D4
  • TCD2_LCMPD_vect β€” Low Byte Compare D
    • lives on: ATxmega128A3U, ATxmega128A4U, ATxmega128C3, ATxmega128D4, ATxmega16A4U, ATxmega16C4, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64A4U, ATxmega64C3, ATxmega64D4
  • TCD2_LUNF_vect β€” Low Byte Underflow
    • lives on: ATxmega128A3U, ATxmega128A4U, ATxmega128C3, ATxmega128D4, ATxmega16A4U, ATxmega16C4, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64A4U, ATxmega64C3, ATxmega64D4
  • TCD5_CCA_vect β€” Channel A Compare or Capture
    • lives on: ATxmega32E5, ATxmega8E5
  • TCD5_CCB_vect β€” Channel B Compare or Capture
    • lives on: ATxmega32E5, ATxmega8E5
  • TCD5_ERR_vect β€” Error
    • lives on: ATxmega32E5, ATxmega8E5
  • TCD5_OVF_vect β€” Overflow
    • lives on: ATxmega32E5, ATxmega8E5

okay now the TCE0 era, she's booked and busy 🌸

  • TCE0_CCA_vect β€” Compare or Capture A
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A4U, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A4U, ATxmega64B1, ATxmega64D3, ATxmega64D4
  • TCE0_CCB_vect β€” Compare or Capture B
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A4U, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A4U, ATxmega64B1, ATxmega64D3, ATxmega64D4
  • TCE0_CCC_vect β€” Compare or Capture C
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A4U, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A4U, ATxmega64B1, ATxmega64D3, ATxmega64D4
  • TCE0_CCD_vect β€” Compare or Capture D
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A4U, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A4U, ATxmega64B1, ATxmega64D3, ATxmega64D4
  • TCE0_CMP0_vect β€” TCE0 IRQs
    • lives on: AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32
  • TCE0_CMP1_vect β€” TCE0 IRQs
    • lives on: AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32
  • TCE0_CMP2_vect β€” TCE0 IRQs
    • lives on: AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32
  • TCE0_CMP3_vect β€” TCE0 IRQs
    • lives on: AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32
  • TCE0_ERR_vect β€” Error
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A4U, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A4U, ATxmega64B1, ATxmega64D3, ATxmega64D4
  • TCE0_OVF_vect β€” Overflow
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A4U, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A4U, ATxmega64B1, ATxmega64D3, ATxmega64D4
  • TCE0_OVF_vect β€” TCE0 IRQs
    • lives on: AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32
not me noticing TCE0_OVF_vect shows up twice in this list πŸ’€ same name, two totally different crowds. It's giving multiverse. First one is the ATxmega Overflow squad, second one is the AVR16EB* TCE0 IRQs crew β€” both real, don't merge them, bestie.
  • TCE1_CCA_vect β€” Compare or Capture A
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega16A4, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U
  • TCE1_CCB_vect β€” Compare or Capture B
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega16A4, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U
  • TCE1_ERR_vect β€” Error
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega16A4, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U
  • TCE1_OVF_vect β€” Overflow
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega16A4, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U
  • TCE2_HUNF_vect β€” High Byte Underflow
    • lives on: ATxmega128A3U, ATxmega128B1, ATxmega128C3, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32C3, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64C3
  • TCE2_LCMPA_vect β€” Low Byte Compare A
    • lives on: ATxmega128A3U, ATxmega128B1, ATxmega128C3, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32C3, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64C3
  • TCE2_LCMPB_vect β€” Low Byte Compare B
    • lives on: ATxmega128A3U, ATxmega128B1, ATxmega128C3, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32C3, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64C3
  • TCE2_LCMPC_vect β€” Low Byte Compare C
    • lives on: ATxmega128A3U, ATxmega128B1, ATxmega128C3, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32C3, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64C3
  • TCE2_LCMPD_vect β€” Low Byte Compare D
    • lives on: ATxmega128A3U, ATxmega128B1, ATxmega128C3, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32C3, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64C3
  • TCE2_LUNF_vect β€” Low Byte Underflow
    • lives on: ATxmega128A3U, ATxmega128B1, ATxmega128C3, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32C3, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64C3

and now we slide into the TCF girls, highkey iconic ✨

  • TCF0_CCA_vect β€” Compare or Capture A
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128D3, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64D3
  • TCF0_CCB_vect β€” Compare or Capture B
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128D3, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64D3
  • TCF0_CCC_vect β€” Compare or Capture C
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128D3, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64D3
  • TCF0_CCD_vect β€” Compare or Capture D
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128D3, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64D3
  • TCF0_ERR_vect β€” Error
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128D3, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64D3
  • TCF0_INT_vect β€” TCF0 IRQs
    • lives on: AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32
  • TCF0_OVF_vect β€” Overflow
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128D3, ATxmega192A3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega32D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64D3
  • TCF1_CCA_vect β€” Compare or Capture A
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U
  • TCF1_CCB_vect β€” Compare or Capture B
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U
  • TCF1_ERR_vect β€” Error
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U
  • TCF1_OVF_vect β€” Overflow
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U
  • TCF2_HUNF_vect β€” High Byte Underflow
    • lives on: ATxmega128A3U, ATxmega128C3, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32C3, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64C3
  • TCF2_LCMPA_vect β€” Low Byte Compare A
    • lives on: ATxmega128A3U, ATxmega128C3, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32C3, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64C3
  • TCF2_LCMPB_vect β€” Low Byte Compare B
    • lives on: ATxmega128A3U, ATxmega128C3, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32C3, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64C3
  • TCF2_LCMPC_vect β€” Low Byte Compare C
    • lives on: ATxmega128A3U, ATxmega128C3, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32C3, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64C3
  • TCF2_LCMPD_vect β€” Low Byte Compare D
    • lives on: ATxmega128A3U, ATxmega128C3, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32C3, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64C3
  • TCF2_LUNF_vect β€” Low Byte Underflow
    • lives on: ATxmega128A3U, ATxmega128C3, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32C3, ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64C3

and we have arrived at the TIM0 corner of the world, where the tinies live πŸ¦‹

  • TIM0_CAPT_vect β€” Timer/Counter0 Input Capture
    • lives on: ATtiny10, ATtiny102, ATtiny104, ATtiny4, ATtiny5, ATtiny9
  • TIM0_COMPA_vect β€” Timer/Counter0 Compare Match A
    • lives on: ATmega406, ATtiny10, ATtiny102, ATtiny104, ATtiny13, ATtiny13A, ATtiny1634, ATtiny20, ATtiny24, ATtiny24A, ATtiny4, ATtiny40, ATtiny43U, ATtiny44, ATtiny44A, ATtiny5, ATtiny84, ATtiny84A, ATtiny9
  • TIM0_COMPB_vect

Timer/Counter0 Compare Match B

okay bestie, the title for this one lived back in the last part, but the vibe is still immaculate:

Timer/Counter0 Compare Match B

riding with: ATmega406, ATtiny10, ATtiny102, ATtiny104, ATtiny13, ATtiny13A, ATtiny1634, ATtiny20, ATtiny24, ATtiny24A, ATtiny4, ATtiny40, ATtiny43U, ATtiny44, ATtiny44A, ATtiny5, ATtiny84, ATtiny84A, ATtiny9


TIM0_OVF_vect

Timer/Counter0 Overflow

riding with: ATmega406, ATtiny10, ATtiny102, ATtiny104, ATtiny13, ATtiny13A, ATtiny1634, ATtiny20, ATtiny24, ATtiny24A, ATtiny4, ATtiny40, ATtiny43U, ATtiny44, ATtiny44A, ATtiny5, ATtiny84, ATtiny84A, ATtiny9

TIM1_CAPT_vect

Timer/Counter1 Input Capture

riding with: ATtiny1634, ATtiny20, ATtiny24, ATtiny24A, ATtiny40, ATtiny44, ATtiny44A, ATtiny84, ATtiny84A

TIM1_COMP_vect

Timer/Counter1 Compare Match

riding with: ATmega406

TIM1_COMPA_vect

Timer/Counter1 Compare Match A

riding with: ATtiny1634, ATtiny20, ATtiny24, ATtiny24A, ATtiny40, ATtiny43U, ATtiny44, ATtiny44A, ATtiny84, ATtiny84A

TIM1_COMPB_vect

Timer/Counter1 Compare Match B

riding with: ATtiny1634, ATtiny20, ATtiny24, ATtiny24A, ATtiny40, ATtiny43U, ATtiny44, ATtiny44A, ATtiny84, ATtiny84A

TIM1_OVF_vect

Timer/Counter1 Overflow

riding with: ATmega406, ATtiny1634, ATtiny20, ATtiny24, ATtiny24A, ATtiny40, ATtiny43U, ATtiny44, ATtiny44A, ATtiny84, ATtiny84A


TIMER0_CAPT_vect time, and it's giving timer zero only energy:

TIMER0_CAPT_vect

Timer/Counter0 Input Capture

riding with: ATtiny261, ATtiny261A, ATtiny461, ATtiny461A, ATtiny861, ATtiny861A


TIMER0_COMP_vect

Timer/Counter0 Compare Match

riding with: AT90CAN128, AT90CAN32, AT90CAN64, ATmega103, ATmega128, ATmega128A, ATmega16, ATmega161, ATmega162, ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega16A, ATmega32, ATmega323, ATmega325, ATmega3250, ATmega3250A, ATmega3250P, ATmega3250PA, ATmega325A, ATmega325P, ATmega325PA, ATmega329, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA, ATmega32A, ATmega64, ATmega645, ATmega6450, ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega6490, ATmega6490A, ATmega6490P, ATmega649A, ATmega649P, ATmega64A, ATmega8535

bestie, hold up. same vector name, second verse, different vibe. keep reading πŸ‘‡

TIMER0_COMP_vect

Timer0 Compare Match

riding with: ATmega8515

yes, it's literally the same name spelled the same way. it's not a typo on my part, the page says it twice with two different descriptions. iconic messy behaviour honestly πŸ’…

TIMER0_COMPA_vect

Timer/Counter0 Compare Match A

riding with: AT90PWM2B, AT90PWM3B, AT90SCR100, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATA5272, ATA5505, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, ATA664251, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega164A, ATmega164P, ATmega164PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega16M1, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega328, ATmega328P, ATmega328PB, ATmega32C1, ATmega32HVB, ATmega32HVBREVB, ATmega32M1, ATmega32U2, ATmega32U4, ATmega32U6, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega64C1, ATmega64HVE, ATmega64HVE2, ATmega64M1, ATmega64RFR2, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB, ATmega8HVA, ATmega8U2, ATtiny167, ATtiny2313, ATtiny2313A, ATtiny25, ATtiny261, ATtiny261A, ATtiny4313, ATtiny441, ATtiny45, ATtiny461, ATtiny461A, ATtiny48, ATtiny828, ATtiny841, ATtiny85, ATtiny861, ATtiny861A, ATtiny87, ATtiny88

TIMER0_COMPB_vect

Timer/Counter0 Compare Match B

riding with: AT90PWM1, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, AT90SCR100, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATA6612C, ATA6613C, ATA6614Q, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega164A, ATmega164P, ATmega164PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega16M1, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega328, ATmega328P, ATmega328PB, ATmega32C1, ATmega32HVB, ATmega32HVBREVB, ATmega32M1, ATmega32U2, ATmega32U4, ATmega32U6, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega64C1, ATmega64HVE, ATmega64HVE2, ATmega64M1, ATmega64RFR2, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB, ATmega8HVA, ATmega8U2, ATtiny2313, ATtiny2313A, ATtiny25, ATtiny261, ATtiny261A, ATtiny4313, ATtiny441, ATtiny45, ATtiny461, ATtiny461A, ATtiny48, ATtiny828, ATtiny841, ATtiny85, ATtiny861, ATtiny861A, ATtiny88

ngl the COMPA and COMPB lists are basically twins, but do not let your eyes glaze over β€” <italic>A</italic> and <italic>B</italic> are not interchangeable, bestie 😭

TIMER0_COMP_A_vect

Timer/Counter0 Compare Match A

riding with: AT90PWM1, AT90PWM2, AT90PWM216, AT90PWM3, AT90PWM316

lowkey a jumpscare: this one is TIMER0_COMP_A_vect, with an extra _ before the A. not the same identifier as TIMER0_COMPA_vect above. do not freestyle it, copy it character for character ✨

TIMER0_IC_vect

Timer/Counter0 Input Capture

riding with: ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega32HVB, ATmega32HVBREVB, ATmega64HVE, ATmega64HVE2, ATmega8HVA

TIMER0_OVF0_vect

Timer/Counter0 Overflow

riding with: AT90S2313, AT90S2323, AT90S2343, ATtiny22, ATtiny26


and now, the big one. the moment. the main character:

TIMER0_OVF_vect

Timer/Counter0 Overflow

riding with: AT90CAN128, AT90CAN32, AT90CAN64, AT90PWM1, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, AT90S1200, AT90S2333, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, AT90SCR100, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATA5272, ATA5505, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, ATA664251, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164A, ATmega164P, ATmega164PA, ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega16A, ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega16M1, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega32, ATmega323, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega325, ATmega3250, ATmega3250A, ATmega3250P, ATmega3250PA, ATmega325A, ATmega325P, ATmega325PA, ATmega328, ATmega328P, ATmega328PB, ATmega329, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA, ATmega32A, ATmega32C1, ATmega32HVB, ATmega32HVBREVB, ATmega32M1, ATmega32U2, ATmega32U4, ATmega32U6, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega64, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega645, ATmega6450, ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega6490, ATmega6490A, ATmega6490P, ATmega649A, ATmega649P, ATmega64A, ATmega64C1, ATmega64HVE, ATmega64HVE2, ATmega64M1, ATmega64RFR2, ATmega8, ATmega8515, ATmega8535, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB, ATmega8A, ATmega8HVA, ATmega8U2, ATtiny11, ATtiny12, ATtiny15, ATtiny167, ATtiny2313, ATtiny2313A, ATtiny25, ATtiny261, ATtiny261A, ATtiny28, ATtiny4313, ATtiny441, ATtiny45, ATtiny461, ATtiny461A, ATtiny48, ATtiny828, ATtiny841, ATtiny85, ATtiny861, ATtiny861A, ATtiny87, ATtiny88

that's a lot of chips, and every single one of them is listed here for a reason. scroll don't skip 🫢

TIMER1_CAPT1_vect

Timer/Counter1 Capture Event

riding with: AT90S2313

TIMER1_CAPT_vect

Timer/Counter1 Input Capture

riding with: AT90CAN128, AT90CAN32, AT90CAN64, AT90PWM1, AT90PWM161, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, AT90PWM81, AT90S2333, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, AT90SCR100, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATA5272, ATA5505, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, ATA664251, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164A, ATmega164P, ATmega164PA, ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega16A, ATmega16M1, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega32, ATmega323, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega325, ATmega3250, ATmega3250A, ATmega3250P, ATmega3250PA, ATmega325A, ATmega325P, ATmega325PA, ATmega328, ATmega328P, ATmega328PB, ATmega329, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA, ATmega32A, ATmega32C1, ATmega32M1, ATmega32U2, ATmega32U4, ATmega32U6, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega64, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega645, ATmega6450, ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega6490, ATmega6490A, ATmega6490P, ATmega649A, ATmega649P, ATmega64A, ATmega64C1, ATmega64M1, ATmega64RFR2, ATmega8, ATmega8515, ATmega8535, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB, ATmega8A, ATmega8U2, ATtiny167, ATtiny2313, ATtiny2313A, ATtiny4313, ATtiny441, ATtiny48, ATtiny828, ATtiny841, ATtiny87, ATtiny88

TIMER1_CMPA_vect

Timer/Counter1 Compare Match 1A

riding with: ATtiny26

TIMER1_CMPB_vect

Timer/Counter1 Compare Match 1B

riding with: ATtiny26

TIMER1_COMP1_vect

Timer/Counter1 Compare Match

riding with: AT90S2313

TIMER1_COMP_vect

Timer/Counter1 Compare Match

riding with: AT90S2333, AT90S4433, ATtiny15

TIMER1_COMPA_vect

Timer/Counter1 Compare Match A

...and bestie, this list is not done yet. hold that thought πŸ’–

TIMER1_COMPB_vect β€” Timer/Counter1 Compare Match B 🌸

okay this one has the most friends by FAR, it's literally the group chat of interrupt vectors, look at this roster:

AT90CAN128, AT90CAN32, AT90CAN64, AT90PWM1, AT90PWM2, AT90PWM216, AT90PWM2B,
AT90PWM3, AT90PWM316, AT90PWM3B, AT90S4414, AT90S4434, AT90S8515, AT90S8535,
AT90SCR100, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647,
AT90USB82, ATA5272, ATA5505, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C,
ATA664251, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284,
ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2,
ATmega16, ATmega161, ATmega162, ATmega163, ATmega164A, ATmega164P,
ATmega164PA, ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega168,
ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega169, ATmega169A,
ATmega169P, ATmega169PA, ATmega16A, ATmega16HVA, ATmega16HVA2, ATmega16HVB,
ATmega16HVBREVB, ATmega16M1, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561,
ATmega2564RFR2, ATmega256RFR2, ATmega32, ATmega323, ATmega324A, ATmega324P,
ATmega324PA, ATmega324PB, ATmega325, ATmega3250, ATmega3250A, ATmega3250P,
ATmega3250PA, ATmega325A, ATmega325P, ATmega325PA, ATmega328, ATmega328P,
ATmega328PB, ATmega329, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA,
ATmega329A, ATmega329P, ATmega329PA, ATmega32A, ATmega32C1, ATmega32HVB,
ATmega32HVBREVB, ATmega32M1, ATmega32U2, ATmega32U4, ATmega32U6, ATmega48,
ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega64, ATmega640, ATmega644,
ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega645, ATmega6450,
ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega6490,
ATmega6490A, ATmega6490P, ATmega649A, ATmega649P, ATmega64A, ATmega64C1,
ATmega64HVE, ATmega64HVE2, ATmega64M1, ATmega64RFR2, ATmega8, ATmega8515,
ATmega8535, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB, ATmega8A,
ATmega8HVA, ATmega8U2, ATtiny167, ATtiny2313, ATtiny2313A, ATtiny25,
ATtiny261, ATtiny261A, ATtiny4313, ATtiny441, ATtiny45, ATtiny461, ATtiny461A,
ATtiny48, ATtiny828, ATtiny841, ATtiny85, ATtiny861, ATtiny861A, ATtiny87,
ATtiny88

like everybody is here bestie, no crumbs left πŸ’…


TIMER1_COMPC_vect β€” Timer/Counter1 Compare Match C ✨

the C-match squad is a lil more exclusive, so demure of them:

AT90CAN128, AT90CAN32, AT90CAN64, AT90USB1286, AT90USB1287, AT90USB162,
AT90USB646, AT90USB647, AT90USB82, ATmega128, ATmega1280, ATmega1281,
ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega16U2,
ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2,
ATmega32U2, ATmega32U4, ATmega32U6, ATmega64, ATmega640, ATmega644RFR2,
ATmega64A, ATmega64RFR2, ATmega8U2

TIMER1_COMPD_vect β€” Timer/Counter1 Compare Match D πŸŽ€

D-match is a tiny lil club, literally six members, it's giving VIP lounge:

ATtiny261, ATtiny261A, ATtiny461, ATtiny461A, ATtiny861, ATtiny861A

TIMER1_IC_vect β€” Timer/Counter1 Input Capture πŸ¦‹

input capture besties, they catching everything fr:

ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega32HVB,
ATmega32HVBREVB, ATmega64HVE, ATmega64HVE2, ATmega8HVA

TIMER1_OVF1_vect β€” Timer/Counter1 Overflow πŸ’–

note the lil 1 in there, it's OVF1 not OVF, okay? it's its whole thing:

AT90S2313, ATtiny26

TIMER1_OVF_vect β€” Timer/Counter1 Overflow 🌸

and HERE's the regular TIMER1_OVF_vect, the main character of overflow vectors, the guest list is literally everyone:

AT90CAN128, AT90CAN32, AT90CAN64, AT90PWM1, AT90PWM161, AT90PWM2,
AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, AT90PWM81,
AT90S2333, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535,
AT90SCR100, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646,
AT90USB647, AT90USB82, ATA5272, ATA5505, ATA6612C, ATA6613C, ATA6614Q,
ATA6616C, ATA6617C, ATA664251, ATmega103, ATmega128, ATmega1280,
ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A,
ATmega128RFA1, ATmega128RFR2, ATmega16, ATmega161, ATmega162, ATmega163,
ATmega164A, ATmega164P, ATmega164PA, ATmega165, ATmega165A, ATmega165P,
ATmega165PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA,
ATmega168PB, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega16A,
ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega16M1,
ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2,
ATmega256RFR2, ATmega32, ATmega323, ATmega324A, ATmega324P, ATmega324PA,
ATmega324PB, ATmega325, ATmega3250, ATmega3250A, ATmega3250P,
ATmega3250PA, ATmega325A, ATmega325P, ATmega325PA, ATmega328,
ATmega328P, ATmega328PB, ATmega329, ATmega3290, ATmega3290A,
ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA,
ATmega32A, ATmega32C1, ATmega32HVB, ATmega32HVBREVB, ATmega32M1,
ATmega32U2, ATmega32U4, ATmega32U6, ATmega48, ATmega48A, ATmega48P,
ATmega48PA, ATmega48PB, ATmega64, ATmega640, ATmega644, ATmega644A,
ATmega644P, ATmega644PA, ATmega644RFR2, ATmega645, ATmega6450,
ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega6490,
ATmega6490A, ATmega6490P, ATmega649A, ATmega649P, ATmega64A, ATmega64C1,
ATmega64HVE, ATmega64HVE2, ATmega64M1, ATmega64RFR2, ATmega8,
ATmega8515, ATmega8535, ATmega88, ATmega88A, ATmega88P, ATmega88PA,
ATmega88PB, ATmega8A, ATmega8HVA, ATmega8U2, ATtiny15, ATtiny167,
ATtiny2313, ATtiny2313A, ATtiny25, ATtiny261, ATtiny261A, ATtiny4313,
ATtiny441, ATtiny45, ATtiny461, ATtiny461A, ATtiny48, ATtiny828,
ATtiny841, ATtiny85, ATtiny861, ATtiny861A, ATtiny87, ATtiny88

lowkey obsessed, that's a whole stadium 🏟️


TIMER2_CAPT_vect β€” Timer/Counter2 Input Capture ⭐

just two icons on this list, and honestly good for them:

ATtiny441, ATtiny841

TIMER2_COMP_vect β€” Timer/Counter2 Compare Match πŸ’œ

classic COMP with no letter after it, a vintage queen:

AT90CAN128, AT90CAN32, AT90CAN64, AT90S4434, AT90S8535, ATmega103,
ATmega128, ATmega128A, ATmega16, ATmega161, ATmega162, ATmega163,
ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega169, ATmega169A,
ATmega169P, ATmega169PA, ATmega16A, ATmega32, ATmega323, ATmega325,
ATmega3250, ATmega3250A, ATmega3250P, ATmega3250PA, ATmega325A,
ATmega325P, ATmega325PA, ATmega329, ATmega3290, ATmega3290A,
ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA,
ATmega32A, ATmega64, ATmega645, ATmega6450, ATmega6450A, ATmega6450P,
ATmega645A, ATmega645P, ATmega649, ATmega6490, ATmega6490A, ATmega6490P,
ATmega649A, ATmega649P, ATmega64A, ATmega8, ATmega8535, ATmega8A

TIMER2_COMPA_vect β€” Timer/Counter2 Compare Match A 🌈

now we in the lettered era of Timer2 compares, A comes first obviously:

AT90SCR100, AT90USB1286, AT90USB1287, AT90USB646, AT90USB647, ATA6612C,
ATA6613C, ATA6614Q, ATmega1280, ATmega1281, ATmega1284, ATmega1284P,
ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega164A, ATmega164P,
ATmega164PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA,
ATmega168PB, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2,
ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega328, ATmega328P,
ATmega328PB, ATmega32U6, ATmega48, ATmega48A, ATmega48P, ATmega48PA,
ATmega48PB, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA,
ATmega644RFR2, ATmega64RFR2, ATmega88, ATmega88A, ATmega88P, ATmega88PA,
ATmega88PB, ATtiny441, ATtiny841

TIMER2_COMPB_vect β€” Timer/Counter2 Compare Match B 🧚

and B... it's giving the EXACT same guest list as A, bestie they're twins, iykyk:

AT90SCR100, AT90USB1286, AT90USB1287, AT90USB646, AT90USB647, ATA6612C,
ATA6613C, ATA6614Q, ATmega1280, ATmega1281, ATmega1284, ATmega1284P,
ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega164A, ATmega164P,
ATmega164PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA,
ATmega168PB, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2,
ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega328, ATmega328P,
ATmega328PB, ATmega32U6, ATmega48, ATmega48A, ATmega48P, ATmega48PA,
ATmega48PB, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA,
ATmega644RFR2, ATmega64RFR2, ATmega88, ATmega88A, ATmega88P, ATmega88PA,
ATmega88PB, ATtiny441, ATtiny841

TIMER2_OVF_vect β€” Timer/Counter2 Overflow πŸ’…

overflow time for Timer2 and yeah it's a crowd again, they ate:

AT90CAN128, AT90CAN32, AT90CAN64, AT90S4434, AT90S8535, AT90SCR100,
AT90USB1286, AT90USB1287, AT90USB646, AT90USB647, ATA6612C, ATA6613C,
ATA6614Q, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284,
ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2,
ATmega16, ATmega161, ATmega162, ATmega163, ATmega164A, ATmega164P,
ATmega164PA, ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega168,
ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega169, ATmega169A,
ATmega169P, ATmega169PA, ATmega16A, ATmega2560, ATmega2561,
ATmega2564RFR2, ATmega256RFR2, ATmega32, ATmega323, ATmega324A,
ATmega324P, ATmega324PA, ATmega324PB, ATmega325, ATmega3250,
ATmega3250A, ATmega3250P, ATmega3250PA, ATmega325A, ATmega325P,
ATmega325PA, ATmega328, ATmega328P, ATmega328PB, ATmega329, ATmega3290,
ATmega3290A, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P,
ATmega329PA, ATmega32A, ATmega32U6, ATmega48, ATmega48A, ATmega48P,
ATmega48PA, ATmega48PB, ATmega64, ATmega640, ATmega644, ATmega644A,
ATmega644P, ATmega644PA, ATmega644RFR2, ATmega645, ATmega6450,
ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega6490,
ATmega6490A, ATmega6490P, ATmega649A, ATmega649P, ATmega64A,
ATmega64RFR2, ATmega8, ATmega8535, ATmega88, ATmega88A, ATmega88P,
ATmega88PA, ATmega88PB, ATmega8A, ATtiny441, ATtiny841

TIMER3_CAPT_vect β€” Timer/Counter3 Input Capture 🌟

  • TIMER3_COMPA_vect β€” Timer/Counter3 Compare Match A πŸŽ€ bestie she's the compare match A interrupt for Timer/Counter3, no cap
    • πŸ¦‹ hits on: AT90CAN128, AT90CAN32, AT90CAN64, AT90USB1286, AT90USB1287, AT90USB646, AT90USB647, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega162, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324PB, ATmega328PB, ATmega32U4, ATmega32U6, ATmega64, ATmega640, ATmega644RFR2, ATmega64A, ATmega64RFR2
  • TIMER3_COMPB_vect β€” Timer/Counter3 Compare Match B ✨ same energy, different letter
    • πŸ¦‹ hits on: AT90CAN128, AT90CAN32, AT90CAN64, AT90USB1286, AT90USB1287, AT90USB646, AT90USB647, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega162, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324PB, ATmega328PB, ATmega32U4, ATmega32U6, ATmega64, ATmega640, ATmega644RFR2, ATmega64A, ATmega64RFR2
  • TIMER3_COMPC_vect β€” Timer/Counter3 Compare Match C πŸ’… and yeah, C's chip list is a lil shorter, that's just how it is
    • πŸ¦‹ hits on: AT90CAN128, AT90CAN32, AT90CAN64, AT90USB1286, AT90USB1287, AT90USB646, AT90USB647, ATmega128, ATmega1280, ATmega1281, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega32U4, ATmega32U6, ATmega64, ATmega640, ATmega644RFR2, ATmega64A, ATmega64RFR2
  • TIMER3_OVF_vect β€” Timer/Counter3 Overflow 🌊 the overflow one, she's giving rollover
    • πŸ¦‹ hits on: AT90CAN128, AT90CAN32, AT90CAN64, AT90USB1286, AT90USB1287, AT90USB646, AT90USB647, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega162, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324PB, ATmega328PB, ATmega32U4, ATmega32U6, ATmega64, ATmega640, ATmega644RFR2, ATmega64A, ATmega64RFR2

  • TIMER4_CAPT_vect β€” Timer/Counter4 Input Capture πŸ“Έ capture moment fr fr
    • πŸ¦‹ hits on: ATmega1280, ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2560, ATmega2564RFR2, ATmega256RFR2, ATmega324PB, ATmega328PB, ATmega640, ATmega644RFR2, ATmega64RFR2
  • TIMER4_COMPA_vect β€” Timer/Counter4 Compare Match A ⭐
    • πŸ¦‹ hits on: ATmega1280, ATmega1281, ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324PB, ATmega328PB, ATmega32U4, ATmega640, ATmega644RFR2, ATmega64RFR2
  • TIMER4_COMPB_vect β€” Timer/Counter4 Compare Match B πŸ’œ twin of A, same list, iconic
    • πŸ¦‹ hits on: ATmega1280, ATmega1281, ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324PB, ATmega328PB, ATmega32U4, ATmega640, ATmega644RFR2, ATmega64RFR2
  • TIMER4_COMPC_vect β€” Timer/Counter4 Compare Match C πŸŽ€
    • πŸ¦‹ hits on: ATmega1280, ATmega1281, ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega640, ATmega644RFR2, ATmega64RFR2
  • TIMER4_COMPD_vect β€” Timer/Counter4 Compare Match D 🌈 ok rare queen, only two chips even know her
    • πŸ¦‹ hits on: ATmega16U4, ATmega32U4
  • TIMER4_FPF_vect β€” Timer/Counter4 Fault Protection πŸ›‘οΈ protective babe
    • πŸ¦‹ hits on: ATmega16U4, ATmega32U4
  • TIMER4_OVF_vect β€” Timer/Counter4 Overflow 🌊
    • πŸ¦‹ hits on: ATmega1280, ATmega1281, ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324PB, ATmega328PB, ATmega32U4, ATmega640, ATmega644RFR2, ATmega64RFR2

  • TIMER5_CAPT_vect β€” Timer/Counter5 Input Capture πŸ“Έ
    • πŸ¦‹ hits on: ATmega1280, ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2560, ATmega2564RFR2, ATmega256RFR2, ATmega640, ATmega644RFR2, ATmega64RFR2
  • TIMER5_COMPA_vect β€” Timer/Counter5 Compare Match A ✨
    • πŸ¦‹ hits on: ATmega1280, ATmega1281, ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega640, ATmega644RFR2, ATmega64RFR2
  • TIMER5_COMPB_vect β€” Timer/Counter5 Compare Match B πŸ’…
    • πŸ¦‹ hits on: ATmega1280, ATmega1281, ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega640, ATmega644RFR2, ATmega64RFR2
  • TIMER5_COMPC_vect β€” Timer/Counter5 Compare Match C πŸŽ€
    • πŸ¦‹ hits on: ATmega1280, ATmega1281, ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega640, ATmega644RFR2, ATmega64RFR2
  • TIMER5_OVF_vect β€” Timer/Counter5 Overflow 🌊
    • πŸ¦‹ hits on: ATmega1280, ATmega1281, ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega640, ATmega644RFR2, ATmega64RFR2

okay we're leaving the mega timers behind, now it's giving niche transceiver girlies πŸ’œ

  • TMRXBINT_vect β€” Timer Modulator SSI Receive Buffer πŸ“₯
    • πŸ¦‹ hits on: ATA5790, ATA5790N, ATA5795
  • TMTCF_vect β€” Tx Modulator Telegram Finish πŸ“¨ telegram done bestie
    • πŸ¦‹ hits on: ATA5702M322, ATA5782, ATA5831
  • TMTXBINT_vect β€” Timer Modulator SSI Transmit Buffer πŸ“€
    • πŸ¦‹ hits on: ATA5790, ATA5790N, ATA5795
  • TMTXCINT_vect β€” Timer Modulator Transmit Complete βœ…
    • πŸ¦‹ hits on: ATA5790, ATA5790N, ATA5795
  • TPINT_vect β€” Transponder Mode πŸ›°οΈ
    • πŸ¦‹ hits on: ATA5702M322, ATA5790, ATA5790N, ATA5795
  • TPTOERR_vect β€” Transponder Timeout Error 😭 it timed out, we've all been there
    • πŸ¦‹ hits on: ATA5702M322

and now the TRx24 radio era πŸ“‘βœ¨

  • TRX24_AMI0_vect β€” Address match Interrupt of address filter 0 πŸ’Œ
    • πŸ¦‹ hits on: ATmega1284RFR2, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2
  • TRX24_AMI1_vect β€” Address match Interrupt of address filter 1 πŸ’Œ
    • πŸ¦‹ hits on: ATmega1284RFR2, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2
  • TRX24_AMI2_vect β€” Address match Interrupt of address filter 2 πŸ’Œ
    • πŸ¦‹ hits on: ATmega1284RFR2, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2
  • TRX24_AMI3_vect β€” Address match Interrupt of address filter 3 πŸ’Œ and that's the whole filter squad
    • πŸ¦‹ hits on: ATmega1284RFR2, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2
  • TRX24_AWAKE_vect β€” TRx24 AWAKE tranceiver is reaching state TRx_OFF 🫢 she's waking up, girlies
    • πŸ¦‹ hits on: ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2
  • TRX24_CCA_ED_DONE_vect β€” TRx24 CCA/ED done βœ…
    • πŸ¦‹ hits on: ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2
  • TRX24_PLL_LOCK_vect β€” TRx24 PLL lock πŸ”’ locked in, literally
    • πŸ¦‹ hits on: ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2
  • TRX24_PLL_UNLOCK_vect β€” TRx24 PLL unlock πŸ”“ the opposite vibe, no notes
    • πŸ¦‹ hits on: ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2
  • TRX24_RX_END_vect β€” TRx24 Rx_END 🎬
    • πŸ¦‹ hits on: ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2
  • TRX24_RX_START_vect β€” TRx24 Receive start 🌸
    • πŸ¦‹ hits on: ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2
  • TRX24_TX_END_vect β€” TRx24 Tx_END 🏁
    • πŸ¦‹ hits on: ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2
  • TRX24_TX_START_vect β€” TRx24 Tx start πŸš€
    • πŸ¦‹ hits on: ATmega1284RFR2, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2
  • TRX24_XAH_AMI_vect β€” TRx24 XAH AMI πŸ‘‘
    • πŸ¦‹ hits on: ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega2564RFR2, ATmega256RFR2, ATmega644RFR2, ATmega64RFR2

TWI time 🧡 two wires, so much drama

  • TWI0_vect β€” Two Wire Serial Interface 0 🌈
    • πŸ¦‹ hits on: ATmega324PB, ATmega328PB
  • TWI0_TWIM_vect β€” TWI0 IRQs ✨ the master side btw
    • πŸ¦‹ hits on: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614, ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48
  • TWI0_TWIS_vect β€” TWI0 IRQs 🫢 and here's the slave side, same name energy, same exact chip list
    • πŸ¦‹ hits on: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614, ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48
  • TWI1_vect β€” Two Wire Serial Interface 1 🌟 second interface, main character behavior
    • πŸ¦‹ hits on: ATA5702M322, ATmega324PB, ATmega328PB
  • TWI1_TWIM_vect β€” TWI1 IRQs πŸ’«
    • πŸ¦‹ hits on: AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB32, AVR128DB48, AVR128DB64, AVR32DA32, AVR32DA48, AVR32DB32, AVR32DB48, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB32, AVR64DB48, AVR64DB64
  • TWI1_TWIS_vect β€” TWI1 IRQs πŸ’« yes bestie, identical description and identical chips, that's just the source, we don't argue with the source
    • πŸ¦‹ hits on: AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB32, AVR128DB48, AVR128DB64, AVR32DA32, AVR32DA48, AVR32DB32, AVR32DB48, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB32, AVR64DB48, AVR64DB64
  • TWI2_vect β€” Two Wire Serial Interface 2 πŸ¦„ a whole third one and only ONE chip reps her, obsessed
    • πŸ¦‹ hits on: ATA5702M322
  • TWI_vect β€” Two Wire Serial Interface 🧚 just the classic, no number, no nonsense
AT90CAN128, AT90CAN32, AT90CAN64, AT90SCR100, AT90USB1286, AT90USB1287,
AT90USB646, AT90USB647, ATA6612C, ATA6613C, ATA6614Q, ATmega128,
ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2,
ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega16, ATmega163,
ATmega164A, ATmega164P, ATmega164PA, ATmega168, ATmega168A, ATmega168P,
ATmega168PA, ATmega168PB, ATmega16A, ATmega16HVB, ATmega16HVBREVB,
ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2,
ATmega32, ATmega323, ATmega324A, ATmega324P, ATmega324PA, ATmega328,
ATmega328P, ATmega32A, ATmega32HVB, ATmega32HVBREVB, ATmega32U4,
ATmega32U6, ATmega406, ATmega48, ATmega48A, ATmega48P, ATmega48PA,
ATmega48PB, ATmega64, ATmega640, ATmega644, ATmega644A, ATmega644P,
ATmega644PA, ATmega644RFR2, ATmega64A, ATmega64RFR2, ATmega8,
ATmega8535, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB,
ATmega8A, ATtiny1634, ATtiny48, ATtiny88

✨ TWIBUSCD_vect ✨

Two Wire Bus Connect/Disconnect β€” the connect/disconnect moment πŸ’…

ATmega16HVB, ATmega16HVBREVB, ATmega32HVB, ATmega32HVBREVB

✨ TWIC_TWIM_vect ✨

TWI Master β€” master energy, no cap πŸ‘‘

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U,
ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4,
ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3,
ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B,
ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4,
ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4,
ATxmega32E5, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U,
ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3,
ATxmega64C3, ATxmega64D3, ATxmega64D4, ATxmega8E5

✨ TWIC_TWIS_vect ✨

TWI Slave β€” same gang, but slave mode activated 🫢

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U,
ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4,
ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3,
ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B,
ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4,
ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4,
ATxmega32E5, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U,
ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3,
ATxmega64C3, ATxmega64D3, ATxmega64D4, ATxmega8E5

✨ TWID_TWIM_vect ✨

TWI Master β€” the D-channel edition πŸŽ€

ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U

✨ TWID_TWIS_vect ✨

TWI Slave β€” serving slave realness on D πŸ¦‹

ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U

✨ TWIE_TWIM_vect ✨

TWI Master β€” E is for extra ✨

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U,
ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U,
ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3,
ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU,
ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U,
ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega384C3,
ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U,
ATxmega64A4U, ATxmega64C3, ATxmega64D3, ATxmega64D4

✨ TWIE_TWIS_vect ✨

TWI Slave β€” E squad, slave side πŸ’œ

ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U,
ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U,
ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3,
ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU,
ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U,
ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega384C3,
ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U,
ATxmega64A4U, ATxmega64C3, ATxmega64D3, ATxmega64D4

✨ TWIF_TWIM_vect ✨

TWI Master β€” F for finally, master side 🌈

ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U

✨ TWIF_TWIS_vect ✨

TWI Slave β€” F squad, slave side 🧚

ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U

✨ TWI_BUS_CD_vect ✨

Two Wire Bus Connect/Disconnect β€” the solo ATmega406 moment 🌸

ATmega406

✨ TWI_SLAVE_vect ✨

TWI Slave β€” tiny but mighty πŸ’–

ATtiny20, ATtiny40, ATtiny441, ATtiny828, ATtiny841

✨ TXDONE_vect ✨

Transmission Done, Bit Timer Flag 2 β€” done and dusted ✨

AT86RF401

✨ TXEMPTY_vect ✨

Transmit Buffer Empty, Bit Itmer Flag 0 β€” buffer empty, vibes full 😌

AT86RF401

✨ UART0_RX_vect ✨

UART0 Rx Complete β€” received, bestie πŸ’Œ

ATmega161

✨ UART0_TX_vect ✨

UART0 Tx Complete β€” sent, periodt πŸ’…

ATmega161

✨ UART0_UDRE_vect ✨

UART0 Data Register Empty β€” register says it’s empty, iconic πŸŽ€

ATmega161

✨ UART1_RX_vect ✨

UART1 Rx Complete β€” second UART, first in our hearts πŸ’–

ATmega161

✨ UART1_TX_vect ✨

UART1 Tx Complete β€” transmitted with love 🫢

ATmega161

✨ UART1_UDRE_vect ✨

UART1 Data Register Empty β€” empty register, full drama πŸ’€

ATmega161

✨ UART_RX_vect ✨

UART Rx Complete β€” classic UART receive energy πŸ“₯

AT90S2313, AT90S2333, AT90S4414, AT90S4433, AT90S4434, AT90S8515,
AT90S8535, ATmega103, ATmega163

✨ UART_TX_vect ✨

UART Tx Complete β€” classic UART transmit slay πŸ“€

AT90S2313, AT90S2333, AT90S4414, AT90S4433, AT90S4434, AT90S8515,
AT90S8535, ATmega103, ATmega163

✨ UART_UDRE_vect ✨

UART Data Register Empty β€” UART register said β€œempty”, we listen πŸ‘‚

AT90S2313, AT90S2333, AT90S4414, AT90S4433, AT90S4434, AT90S8515,
AT90S8535, ATmega103, ATmega163

✨ UHF_EOTA_vect ✨

UHF Receiver End of telegram on Rx path A β€” telegram done, path A πŸ“‘

ATA5782, ATA5831

✨ UHF_EOTB_vect ✨

UHF Receiver End of telegram on Rx path B β€” telegram done, path B πŸ“‘

ATA5782, ATA5831

✨ UHF_NBITA_vect ✨

UHF Receiver new bit on Rx path A β€” new bit just dropped, path A ✨

ATA5782, ATA5831

✨ UHF_NBITB_vect ✨

UHF Receiver new bit on Rx path B β€” new bit just dropped, path B ✨

ATA5782, ATA5831

✨ UHF_SOTA_vect ✨

UHF Receiver start of telegram ok on Rx path A β€” telegram start, path A βœ…

ATA5782, ATA5831

✨ UHF_SOTB_vect ✨

UHF Receiver start of telegram ok on Rx path B β€” telegram start, path B βœ…

ATA5782, ATA5831

✨ UHF_WCOA_vect ✨

UHF Receiver wake up ok on Rx path A β€” wake up, path A β˜€οΈ

ATA5782, ATA5831

✨ UHF_WCOB_vect ✨

UHF Receiver wake up ok on Rx path B β€” wake up, path B β˜€οΈ

ATA5782, ATA5831

✨ USART0_DRE_vect ✨

USART0 Data Register Empty β€” DRE but make it USART0 🌟

ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809,
ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614,
ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny1634,
ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216,
ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404,
ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424,
ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814,
ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28,
AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48,
AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28,
AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32,
AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48,
AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32,
AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28,
AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28,
AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48

✨ USART0_RX_vect ✨

USART0 Rx Complete β€” received on USART0, as one does πŸ’Œ

AT90CAN128, AT90CAN32, AT90CAN64, AT90SCR100, ATmega128, ATmega1280,
ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A,
ATmega128RFA1, ATmega128RFR2, ATmega164A, ATmega164P, ATmega164PA,
ATmega165A, ATmega165PA, ATmega169, ATmega169A, ATmega169P, ATmega169PA,
ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324A,
ATmega324P, ATmega324PA, ATmega324PB, ATmega325, ATmega3250,
ATmega3250A, ATmega3250P, ATmega325A, ATmega325P, ATmega325PA,
ATmega328PB, ATmega329, ATmega329A, ATmega329P, ATmega329PA, ATmega64,
ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA,
ATmega644RFR2, ATmega645, ATmega6450, ATmega6450A, ATmega6450P,
ATmega645A, ATmega645P, ATmega649, ATmega649A, ATmega649P, ATmega64A,
ATmega64RFR2, ATtiny441, ATtiny841

✨ USART0_RXC_vect ✨

USART0 Rx Complete β€” RXC edition, still complete πŸ’…

ATmega1608, ATmega1609, ATmega162, ATmega3208, ATmega3209, ATmega4808,
ATmega4809, ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607,
ATtiny1614, ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627,
ATtiny1634, ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3214,
ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402,
ATtiny404, ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417,
ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807,
ATtiny814, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827,
AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32,
AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32,
AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28,
AVR16EB32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32,
AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28,
AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64,
AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20,
AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32,
AVR64EA48

✨ USART0_RXS_vect ✨

USART0 Start β€” start me up, ATtiny1634 style 🎬

ATtiny1634

✨ USART0_START_vect ✨

USART0 Start Frame Detection β€” frame detection, but make it start πŸ”

ATmega324PB, ATmega328PB, ATtiny441, ATtiny841

✨ USART0_TX_vect ✨

USART0 Tx Complete β€” transmitted, slay πŸ’…

AT90CAN128, AT90CAN32, AT90CAN64, AT90SCR100, ATmega128, ATmega1280,
ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A,
ATmega128RFA1, ATmega128RFR2, ATmega164A, ATmega164P, ATmega164PA,
ATmega165A, ATmega165PA, ATmega169, ATmega169A, ATmega169P, ATmega169PA,
ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324A,
ATmega324P, ATmega324PA, ATmega324PB, ATmega325, ATmega3250PA,
ATmega325A, ATmega325P, ATmega325PA, ATmega328PB, ATmega329, ATmega3290,
ATmega3290A, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P,
ATmega329PA, ATmega64, ATmega640, ATmega644, ATmega644A, ATmega644P,
ATmega644PA, ATmega644RFR2, ATmega645, ATmega645A, ATmega645P,
ATmega649, ATmega6490, ATmega6490A, ATmega6490P, ATmega649A, ATmega649P,
ATmega64A, ATmega64RFR2, ATtiny441, ATtiny841

✨ USART0_TXC_vect ✨

USART0 Tx Complete β€” Tx complete, iconic, no notes πŸ‘‘

…and that device list just keeps going, so let's finish it off real quick 🌸

ATmega1608, ATmega1609, ATmega162, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny1614, ATtiny1616, ATtiny1617, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny1634, ATtiny202, ATtiny204, ATtiny212, ATtiny214, ATtiny3214, ATtiny3216, ATtiny3217, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny402, ATtiny404, ATtiny406, ATtiny412, ATtiny414, ATtiny416, ATtiny417, ATtiny424, ATtiny426, ATtiny427, ATtiny804, ATtiny806, ATtiny807, ATtiny814, ATtiny816, ATtiny817, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48

periodt, that one's done πŸ’…


🌈 USART0_UDRE_vect

USART0 Data Register Empty

The fam that rocks this vector: AT90CAN128, AT90CAN32, AT90CAN64, AT90SCR100, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega162, ATmega164A, ATmega164P, ATmega164PA, ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega325, ATmega3250, ATmega3250A, ATmega3250P, ATmega325A, ATmega325P, ATmega325PA, ATmega328PB, ATmega329, ATmega329A, ATmega329P, ATmega329PA, ATmega64, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega645, ATmega6450, ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega649A, ATmega649P, ATmega64A, ATmega64RFR2, ATtiny2313A, ATtiny4313, ATtiny441, ATtiny841

🫧 USART1_DRE_vect

USART1 Data Register Empty

It's giving "my transmit buffer is empty, pls feed me". Chips that have it: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny1634, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny424, ATtiny426, ATtiny427, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48

πŸ’Œ USART1_RX_vect

USART1 Rx Complete

A whole byte landed, bestie πŸŽ€ Reserved for: AT90CAN128, AT90CAN32, AT90CAN64, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega164A, ATmega164P, ATmega164PA, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega328PB, ATmega32U2, ATmega32U4, ATmega32U6, ATmega64, ATmega640, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega64A, ATmega64RFR2, ATmega8U2, ATtiny441, ATtiny841

πŸ¦‹ USART1_RXC_vect

USART1 Rx Complete

Same vibe as above, different naming era. Owned by: ATmega1608, ATmega1609, ATmega162, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny1634, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny424, ATtiny426, ATtiny427, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48

πŸ“ USART1_RXS_vect

USART1 Start

Just one icon for this one: ATtiny1634. Rare, exclusive, main character energy fr πŸ’…

🌸 USART1_START_vect

USART1 Start Frame Detection

Catching that start frame like πŸ‘€. Lives on: ATmega324PB, ATmega328PB, ATtiny441, ATtiny841

✨ USART1_TX_vect

USART1 Tx Complete

Everything you queued up? Sent. Done. On: AT90CAN128, AT90CAN32, AT90CAN64, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega164A, ATmega164P, ATmega164PA, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega328PB, ATmega32U2, ATmega32U4, ATmega32U6, ATmega64, ATmega640, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega64A, ATmega64RFR2, ATmega8U2, ATtiny441, ATtiny841

πŸ’œ USART1_TXC_vect

USART1 Tx Complete

The newer-named twin of the one above 🫢 On: ATmega1608, ATmega1609, ATmega162, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, ATtiny1624, ATtiny1626, ATtiny1627, ATtiny1634, ATtiny3224, ATtiny3226, ATtiny3227, ATtiny424, ATtiny426, ATtiny427, ATtiny824, ATtiny826, ATtiny827, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR16EA28, AVR16EA32, AVR16EA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28, AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48

🧚 USART1_UDRE_vect

USART1 Data Register Empty

Feed the register, bestie 😭 On: AT90CAN128, AT90CAN32, AT90CAN64, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128A, ATmega128RFA1, ATmega128RFR2, ATmega162, ATmega164A, ATmega164P, ATmega164PA, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega328PB, ATmega32U2, ATmega32U4, ATmega32U6, ATmega64, ATmega640, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega64A, ATmega64RFR2, ATmega8U2, ATtiny441, ATtiny841

🌟 USART2_DRE_vect

USART2 Data Register Empty

Second USART said "me too" πŸ’« On: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16EA28, AVR16EA32, AVR16EA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64EA28, AVR64EA32, AVR64EA48

πŸŽ€ USART2_RX_vect

USART2 Rx Complete

On: ATmega1280, ATmega2560, ATmega324PB, ATmega640

πŸ’– USART2_RXC_vect

USART2 Rx Complete

Same deal, new name, obsessed. On: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16EA28, AVR16EA32, AVR16EA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64EA28, AVR64EA32, AVR64EA48

πŸ‘‘ USART2_START_vect

USART2 Start Frame Detection

Only ATmega324PB carries this crown, and honestly? It ate.

πŸ”₯ USART2_TX_vect

USART2 Tx Complete

On: ATmega1280, ATmega2560, ATmega324PB, ATmega640

πŸ’« USART2_TXC_vect

USART2 Tx Complete

On: ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, ATmega4809, ATmega808, ATmega809, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR16EA28, AVR16EA32, AVR16EA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR32EA28, AVR32EA32, AVR32EA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64, AVR64EA28, AVR64EA32, AVR64EA48

🌈 USART2_UDRE_vect

USART2 Data Register Empty

On: ATmega1280, ATmega2560, ATmega324PB, ATmega640

⭐ USART3_DRE_vect

USART3 Data Register Empty

Third one, still going strong πŸ’ͺ On: ATmega1609, ATmega3209, ATmega4809, ATmega809, AVR128DA48, AVR128DA64, AVR128DB48, AVR128DB64, AVR32DA48, AVR32DB48, AVR64DA48, AVR64DA64, AVR64DB48, AVR64DB64

πŸ¦‹ USART3_RX_vect

USART3 Rx Complete

On: ATmega1280, ATmega2560, ATmega640

πŸŽ€ USART3_RXC_vect

USART3 Rx Complete

On: ATmega1609, ATmega3209, ATmega4809, ATmega809, AVR128DA48, AVR128DA64, AVR128DB48, AVR128DB64, AVR32DA48, AVR32DB48, AVR64DA48, AVR64DA64, AVR64DB48, AVR64DB64

πŸ’… USART3_TX_vect

USART3 Tx Complete

On: ATmega1280, ATmega2560, ATmega640

✨ USART3_TXC_vect

USART3 Tx Complete

On: ATmega1609, ATmega3209, ATmega4809, ATmega809, AVR128DA48, AVR128DA64, AVR128DB48, AVR128DB64, AVR32DA48, AVR32DB48, AVR64DA48, AVR64DA64, AVR64DB48, AVR64DB64

🫢 USART3_UDRE_vect

USART3 Data Register Empty

On: ATmega1280, ATmega2560, ATmega640

πŸ“ USART4_DRE_vect

USART4 Data Register Empty

Four whole USARTs, no cap πŸ“ On: AVR128DA48, AVR128DA64, AVR128DB48, AVR128DB64, AVR32DA48, AVR32DB48, AVR64DA48, AVR64DA64, AVR64DB48, AVR64DB64

🌸 USART4_RXC_vect

USART4 Rx Complete

On: AVR128DA48, AVR128DA64, AVR128DB48, AVR128DB64, AVR32DA48, AVR32DB48, AVR64DA48, AVR64DA64, AVR64DB48, AVR64DB64

πŸ’œ USART4_TXC_vect

USART4 Tx Complete

On: AVR128DA48, AVR128DA64, AVR128DB48, AVR128DB64, AVR32DA48, AVR32DB48, AVR64DA48, AVR64DA64, AVR64DB48, AVR64DB64

🧚 USART5_DRE_vect

USART5 Data Register Empty

FIVE. Iconic behaviour only. On: AVR128DA64, AVR128DB64, AVR64DA64, AVR64DB64

πŸ’– USART5_RXC_vect

USART5 Rx Complete

On: AVR128DA64, AVR128DB64, AVR64DA64, AVR64DB64

πŸ”₯ USART5_TXC_vect

USART5 Tx Complete

On: AVR128DA64, AVR128DB64, AVR64DA64, AVR64DB64

πŸ’« USARTC0_DRE_vect

Data Register Empty

Hello XMEGA era, we love you πŸ’« On: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega32E5, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3, ATxmega64D3, ATxmega64D4, ATxmega8E5

✨ USARTC0_RXC_vect

Reception Complete

and we're still going, bestie β€” the vector list has more in store 🫢

okay continuing the list, bestie β€” we're deep in USART-ville now πŸ’– every single one of these is a vector name, what it means, and which chips it lives on. no skips. let's GO.

  • USARTC0_TXC_vect β€” Transmission Complete 🌈
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega32E5, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3, ATxmega64D3, ATxmega64D4, ATxmega8E5
  • USARTC1_DRE_vect β€” Data Register Empty 🫢
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega32C4, ATxmega384C3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U
  • USARTC1_RXC_vect β€” Reception Complete πŸ“₯
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega32C4, ATxmega384C3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U
  • USARTC1_TXC_vect β€” Transmission Complete πŸ“€
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega32C4, ATxmega384C3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U

  • USARTD0_DRE_vect β€” Data Register Empty πŸ’Œ
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega32E5, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64C3, ATxmega64D3, ATxmega64D4, ATxmega8E5
  • USARTD0_RXC_vect β€” Reception Complete πŸŽ€
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega32E5, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64C3, ATxmega64D3, ATxmega64D4, ATxmega8E5
  • USARTD0_TXC_vect β€” Transmission Complete πŸ”₯
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega16C4, ATxmega16D4, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega32D3, ATxmega32D4, ATxmega32E5, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64C3, ATxmega64D3, ATxmega64D4, ATxmega8E5

  • USARTD1_DRE_vect β€” Data Register Empty ✨
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U
  • USARTD1_RXC_vect β€” Reception Complete πŸ’œ
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U
  • USARTD1_TXC_vect β€” Transmission Complete 🌸
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega32A4, ATxmega32A4U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U

  • USARTE0_DRE_vect β€” Data Register Empty πŸ¦‹
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32D3, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64C3, ATxmega64D3, ATxmega64D4
  • USARTE0_RXC_vect β€” Reception Complete πŸ’œ
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32D3, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64C3, ATxmega64D3, ATxmega64D4
  • USARTE0_TXC_vect β€” Transmission Complete ⭐
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128C3, ATxmega128D3, ATxmega128D4, ATxmega16A4, ATxmega16A4U, ATxmega192A3, ATxmega192A3U, ATxmega192C3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega256D3, ATxmega32A4, ATxmega32A4U, ATxmega32C3, ATxmega32D3, ATxmega384C3, ATxmega384D3, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64C3, ATxmega64D3, ATxmega64D4

  • USARTE1_DRE_vect β€” Data Register Empty πŸ“
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U
  • USARTE1_RXC_vect β€” Reception Complete 🌈
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U
  • USARTE1_TXC_vect β€” Transmission Complete πŸ‘‘
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U

  • USARTF0_DRE_vect β€” Data Register Empty 🧚
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U
  • USARTF0_RXC_vect β€” Reception Complete πŸ’–
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U
  • USARTF0_TXC_vect β€” Transmission Complete πŸ’…
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega128A3, ATxmega128A3U, ATxmega192A3, ATxmega192A3U, ATxmega256A3, ATxmega256A3B, ATxmega256A3BU, ATxmega256A3U, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmega64A3U

  • USARTF1_DRE_vect β€” Data Register Empty 🌸
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U
  • USARTF1_RXC_vect β€” Reception Complete πŸ¦‹
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U
  • USARTF1_TXC_vect β€” Transmission Complete ✨
    • lives on: ATxmega128A1, ATxmega128A1U, ATxmega64A1, ATxmega64A1U

okay now we're leaving the xmega zone entirely and sliding into the classic AVR + tiny territory, and the naming gets a lil chaotic (as it does 😭). buckle up.

  • USART_DRE_vect β€” USART Data Register empty 🫢
    • lives on: ATtiny102, ATtiny104
  • USART_RX_vect β€” USART Rx Complete πŸ“₯
    • lives on: AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, ATA6612C, ATA6613C, ATA6614Q, ATmega165, ATmega165P, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega3250PA, ATmega328, ATmega328P, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega6490, ATmega6490A, ATmega6490P, ATmega8515, ATmega8535, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB, ATtiny2313, ATtiny2313A, ATtiny4313, ATtiny828
  • USART_RXC_vect β€” USART Rx Complete πŸŽ€
    • lives on: ATmega16, ATmega16A, ATmega32, ATmega323, ATmega32A, ATmega8, ATmega8A, ATtiny102, ATtiny104
  • USART_RXS_vect β€” USART Rx Start 🌟
    • lives on: ATtiny102, ATtiny104
  • USART_START_vect β€” USART Start Edge 🏁
    • lives on: ATmega168PB, ATmega48PB, ATmega88PB, ATtiny828
  • USART_TX_vect β€” USART Tx Complete πŸ“€
    • lives on: AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, ATA6612C, ATA6613C, ATA6614Q, ATmega165, ATmega165P, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega3250, ATmega3250A, ATmega3250P, ATmega328, ATmega328P, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega6450, ATmega6450A, ATmega6450P, ATmega8515, ATmega8535, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB, ATtiny2313, ATtiny2313A, ATtiny4313, ATtiny828
  • USART_TXC_vect β€” USART Tx Complete πŸ”₯
    • lives on: ATmega16, ATmega16A, ATmega32, ATmega323, ATmega32A, ATmega8, ATmega8A, ATtiny102, ATtiny104
okay so USART_UDRE_vect shows up twice down here, and that is NOT a typo, bestie β€” same vector name, two totally different descriptions and two totally different device crowds. both are real. both stay. πŸ’€
  • USART_UDRE_vect β€” UART Data Register Empty πŸ’Œ
    • lives on: ATmega8515
  • USART_UDRE_vect β€” USART Data Register Empty πŸ’Œ
    • lives on: AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, ATA6612C, ATA6613C, ATA6614Q, ATmega16, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega16A, ATmega32, ATmega323, ATmega3250PA, ATmega328, ATmega328P, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA, ATmega32A, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega6490, ATmega6490A, ATmega6490P, ATmega8, ATmega8535, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB, ATmega8A, ATtiny2313, ATtiny828

and the very last one in this batch, and it's giving main character energy because it's the only USB one here πŸ‘‘

  • USB0_BUSEVENT_vect β€” USB0 IRQs πŸ”ŒπŸ’–
    • lives on: AVR64DU28, AVR64DU32

πŸ‘‘ USB0_TRNCOMPL_vect

no cap, this is the USB0 IRQs moment ✨

Devices: AVR64DU28, AVR64DU32


πŸ’œ USBHost_Control_vect

this is the USB Host Controller interrupt, and she's only repping one chip πŸŽ€

Devices: AT90SCR100


πŸ’œ USBHost_Pipe_vect

the USB Host Pipe one 🫢 same solo act:

Devices: AT90SCR100


πŸ”₯ USB_BUSEVENT_vect

it's giving SOF, suspend, resume, reset bus event Interrupts, crc, Underflow, Overflow and stall Error Interrupts β€” literally all the bus drama in one vect πŸ’…

Devices: ATxmega128A1U, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega16A4U, ATxmega16C4, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega384C3, ATxmega64A1U, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3


πŸ¦‹ USB_COM_vect

this is the USB Endpoint/Pipe Interrupt Communication Request β€” the group chat of USB interrupts fr fr 😭

Devices: AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATmega16U2, ATmega16U4, ATmega32U2, ATmega32U4, ATmega32U6, ATmega8U2


πŸŽ€ USB_Endpoint_vect

USB Endpoint Related β€” very demure, very endpoint πŸ’…

Devices: AT90SCR100


πŸ¦‹ USB_GEN_vect

the USB General IRQ, the catch-all bestie ✨

Devices: AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATmega16U2, ATmega16U4, ATmega32U2, ATmega32U4, ATmega32U6, ATmega8U2


πŸŽ€ USB_Protocol_vect

USB Protocol Related β€” the rules lawyer of the USB world 🫢

Devices: AT90SCR100


πŸ”₯ USB_TRNCOMPL_vect

Transaction Complete β€” mission accomplished energy, we love to see it πŸ’–

Devices: ATxmega128A1U, ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128B3, ATxmega128C3, ATxmega16A4U, ATxmega16C4, ATxmega192A3U, ATxmega192C3, ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32A4U, ATxmega32C3, ATxmega32C4, ATxmega384C3, ATxmega64A1U, ATxmega64A3U, ATxmega64A4U, ATxmega64B1, ATxmega64B3, ATxmega64C3


🌸 USI_OVERFLOW_vect

USI Overflow β€” she overflowed, iconic behavior honestly πŸ˜­πŸ’•

Devices: ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega325, ATmega3250, ATmega3250A, ATmega3250P, ATmega3250PA, ATmega325A, ATmega325P, ATmega325PA, ATmega329, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA, ATmega645, ATmega6450, ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega6490, ATmega6490A, ATmega6490P, ATmega649A, ATmega649P, ATtiny2313, ATtiny2313A, ATtiny4313


🌸 USI_OVF_vect

USI Counter Overflow β€” same overflow, different name spelling, iykyk πŸ’…

Devices: ATA5272, ATA5505, ATA6616C, ATA6617C, ATA664251, ATtiny1634, ATtiny167, ATtiny24, ATtiny24A, ATtiny25, ATtiny26, ATtiny261, ATtiny261A, ATtiny43U, ATtiny44, ATtiny44A, ATtiny45, ATtiny461, ATtiny461A, ATtiny84, ATtiny84A, ATtiny85, ATtiny861, ATtiny861A, ATtiny87


🧚 USI_START_vect

USI Start Condition β€” the beginning of it all, main character entrance ⭐

Devices: ATA5272, ATA5505, ATA6616C, ATA6617C, ATA664251, ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega325, ATmega3250, ATmega3250A, ATmega3250P, ATmega3250PA, ATmega325A, ATmega325P, ATmega325PA, ATmega329, ATmega3290, ATmega3290A, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA, ATmega645, ATmega6450, ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega6490, ATmega6490A, ATmega6490P, ATmega649A, ATmega649P, ATtiny167, ATtiny2313, ATtiny2313A, ATtiny25, ATtiny261, ATtiny261A, ATtiny4313, ATtiny43U, ATtiny45, ATtiny461, ATtiny461A, ATtiny85, ATtiny861, ATtiny861A, ATtiny87


🧚 USI_STR_vect

USI Start Condition β€” again! (shortened spelling era) πŸŽ€

Devices: ATtiny1634, ATtiny24, ATtiny24A, ATtiny44, ATtiny44A, ATtiny84, ATtiny84A


🧚 USI_STRT_vect

USI Start β€” and once more, but make it ✨abbreviated✨

Devices: ATtiny26


⚑ VADC_vect

Voltage ADC Conversion Complete β€” the voltage girlies ate πŸ”₯

Devices: ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega32HVB, ATmega32HVBREVB, ATmega406, ATmega8HVA


⚑ VADC_ACC_vect

Voltage ADC Accumulated Conversion Complete β€” accumulated, like my unread messages πŸ’€

Devices: ATmega64HVE, ATmega64HVE2


⚑ VADC_CONV_vect

Voltage ADC Instantaneous Conversion Complete β€” instant. no waiting. periodt πŸ’…

Devices: ATmega64HVE, ATmega64HVE2


πŸ¦‹ VLM_vect

Vcc Voltage Level Monitor β€” she's watching the Vcc level like it's a situationship πŸ‘€

Devices: ATtiny10, ATtiny102, ATtiny104, ATtiny4, ATtiny5, ATtiny9


🌈 VMINT_vect

Voltage Monitor β€” yes bestie, the same vect name shows up again, that's just how it is 🫢

Devices: ATA5795


🌈 VMINT_vect

Voltage Monitoring β€” round two, slightly different wording, different chips, no notes πŸŽ€

Devices: ATA5790, ATA5790N


πŸ¦‹ VMON_vect

Voltage Monitoring β€” the sequel nobody asked for but we respect it πŸ’–

Devices: ATA5702M322, ATA5782, ATA5831


🌟 VREGMON_vect

Voltage Regulator Monitor β€” keeping the regulator in check, the way that she just does that 😌

Devices: ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega32HVB, ATmega32HVBREVB, ATmega8HVA


πŸŒ™ WAKEUP_vect

Wakeup Timer Overflow β€” waking up? in this economy? 😭

Devices: ATmega64HVE, ATmega64HVE2


πŸŒ™ WAKE_UP_vect

Wakeup Timer Overflow β€” same energy, extra underscore, that's the whole difference fr fr

Devices: ATmega406


🐢 WATCHDOG_vect

Watchdog Timeout β€” the watchdog said "time's up bestie" πŸ’€

Devices: ATtiny24, ATtiny44, ATtiny44A, ATtiny84, ATtiny84A


🐢 WDT_vect

Watchdog Timeout β€” the big one, the extended universe, the whole friend group is here πŸ”₯

Devices: AT90PWM1, AT90PWM161, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, AT90PWM81, AT90SCR100, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATA5272, ATA5505, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, ATA664251, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega1284RFR2, ATmega128RFA1, ATmega128RFR2, ATmega164A, ATmega164P, ATmega164PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB, ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16HVBREVB, ATmega16M1, ATmega16U2, ATmega16U4, ATmega2560, ATmega2561, ATmega2564RFR2, ATmega256RFR2, ATmega324A, ATmega324P, ATmega324PA, ATmega324PB, ATmega328, ATmega328P, ATmega328PB, ATmega32C1, ATmega32HVB, ATmega32HVBREVB, ATmega32M1, ATmega32U2, ATmega32U4, ATmega32U6, ATmega406, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega644RFR2, ATmega64C1, ATmega64HVE, ATmega64HVE2, ATmega64M1, ATmega64RFR2, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB, ATmega8HVA, ATmega8U2, ATtiny10, ATtiny102, ATtiny104, ATtiny13, ATtiny13A, ATtiny1634, ATtiny167, ATtiny20, ATtiny24A, ATtiny25, ATtiny261, ATtiny261A, ATtiny4, ATtiny40, ATtiny43U, ATtiny441, ATtiny45, ATtiny461, ATtiny461A, ATtiny48, ATtiny5, ATtiny828, ATtiny841, ATtiny85, ATtiny861, ATtiny861A, ATtiny87, ATtiny88, ATtiny9


🐢 WDT_OVERFLOW_vect

Watchdog Timer Overflow β€” she's back and she brought a longer name this time πŸŽ€

Devices: ATtiny2313, ATtiny2313A, ATtiny4313


✨ WEX0_FDFEVC_vect

WEX0 IRQs β€” tiny family, big vibes πŸ¦‹

Devices: AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32


🌸 XCL_CC_vect

Timer/Counter Compare or Capture β€” the either/or queen πŸ’…

Devices: ATxmega32E5, ATxmega8E5


🌸 XCL_UNF_vect

Timer/Counter Underflow β€” under, but make it fashion ✨

Devices: ATxmega32E5, ATxmega8E5


πŸ’Ž XOSCFD_vect

Crystal failure detect β€” the crystal gave out bestie, we're devastated 😭

Devices: ATmega324PB


⚑ ZCD0_ZCD_vect

ZCD0 IRQs β€” zero-cross detection channel zero, the OG πŸ’œ

Devices: AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVR32DA28, AVR32DA32, AVR32DA48, AVR32DB28, AVR32DB32, AVR32DB48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR64DB28, AVR64DB32, AVR64DB48, AVR64DB64


⚑ ZCD1_ZCD_vect

ZCD1 IRQs β€” channel one, smaller friend group, still iconic 🫢

Devices: AVR128DA48, AVR128DA64, AVR128DB48, AVR128DB64, AVR32DA48, AVR32DB48, AVR64DA48, AVR64DA64, AVR64DB48, AVR64DB64


⚑ ZCD2_ZCD_vect

ZCD2 IRQs β€” channel two, exclusive club only πŸ’…

Devices: AVR128DA64, AVR128DB48, AVR128DB64, AVR32DB48, AVR64DA64, AVR64DB48, AVR64DB64


⚑ ZCD3_ZCD_vect

ZCD3 IRQs β€” channel three, and check it: she's on the DD family, not the DA/DB girlies πŸ‘‘

Devices: AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32


πŸ’€ Note

For the following devices, only the deprecated SIG_ names are available: AT43USB320, AT43USB355, AT76C711, AT90C8534, AT94K, M3000.

✨ MACRO DEFINITION DOCUMENTATION ✨

okay bestie, here's the whole lineup β€” every macro in this header, and what it's actually doing. buckle up πŸ’–


πŸŽ€ #define BADISR_vect

#include <avr/interrupt.h>

So this one's a vector that's aliased to __vector_default β€” aka the vector that gets executed when an IRQ fires and there's absolutely no accompanying ISR handler like 😭 who's gonna catch it?? Nobody. And that's the point.

You can use it alongside the ISR() macro to build yourself a catch-all for undefined-but-used ISRs, which is genuinely iconic for debugging purposes. πŸ›βœ¨


πŸ€– #define cli()

Value:

__asm__ __volatile__ ("cli" ::: "memory")

Disables all interrupts by clearing the global interrupt mask. shifting into off mode πŸ’€

Not me being obsessed with the fact that this compiles into a single line of assembly, so there's no function call overhead. However β€” and bestie, listen β€” the macro also implies a memory barrier, which can cause additional loss of optimization. πŸ’€ so it's giving efficient but also not, simultaneously.

If you wanna implement atomic access to multi-byte objects, please consider using the macros from <util/atomic.h> rather than doing it yourself by hand with cli() and sei(). Save yourself the pain. 🫢

🌸 #define EMPTY_INTERRUPT( vector)

Defines an empty interrupt handler function. It will not generate any prolog or epilog code β€” it only returns from the ISR. literally just vibes and a return.

Do not define a function body yourself, because it will define it for you. just let it cook πŸ”₯

Example:

EMPTY_INTERRUPT(ADC_vect);

πŸ‘‘ #define ISR( vector, attributes)

Introduces an interrupt handler function (interrupt service routine) that runs with global interrupts initially disabled by default, with no attributes specified. That's the starting state. periodt.

The attributes are optional, and they alter the behaviour and the resultant generated code of the interrupt routine. Multiple attributes can be used on a single function β€” just separate each attribute with a space. ✨ one space, no commas, we keep it simple.

Valid attributes are ISR_BLOCK, ISR_NOBLOCK, ISR_NAKED, ISR_FLATTEN, ISR_NOICF, ISR_NOGCCISR and ISR_ALIASOF(vect). learn them, love them. πŸ’œ

And vector must be one of the interrupt vector names that are valid for the particular MCU type. no making things up, the MCU will know. 🚫


πŸ¦‹ #define ISR_ALIAS( vector, target_vector)

Aliases a given vector to another one, in the same manner as the ISR_ALIASOF attribute for the ISR() macro. But here's the plot twist: unlike the ISR_ALIASOF attribute macro, this one is compatible for all versions of GCC, rather than just GCC version 4.2 onwards. so it's the flexible friend 🌈

😬 Note

This macro creates a trampoline function for the aliased macro. Which unfortunately results in a two cycle penalty for the aliased vector compared to the ISR the vector is aliased to, because of the JMP/RJMP opcode used. two whole cycles. gone. just like that. 😭

πŸ’€ Deprecated

For new code, the use of ISR(..., ISR_ALIASOF(...)) is recommended. iykyk.

Example:

ISR(INT0_vect)
{
    PORTB = 42;
}

ISR_ALIAS(INT1_vect, INT0_vect);

🧚 #define ISR_ALIASOF( target_vector)

The ISR gets linked to another ISR, specified by the vect parameter. Heads up though β€” this is compatible with GCC 4.2 and greater only. πŸ’…

Use this attribute in the attributes parameter of the ISR macro.

Example:

ISR (INT0_vect)
{
    PORTB = 42;
}

ISR (INT1_vect, ISR_ALIASOF (INT0_vect));

πŸŽ€ #define ISR_BLOCK

Identical to an ISR with no attributes specified. Global interrupts are initially disabled by the AVR hardware when entering the ISR, without the compiler modifying this state. so nobody's touching anything, it just is what it is 🧊

Use this attribute in the attributes parameter of the ISR macro.


🌈 #define ISR_FLATTEN

The compiler will try to inline all called function into the ISR. This has an effect with GCC 4.6 and newer only. πŸ“¦ everything squished in.

Use this attribute in the attributes parameter of the ISR macro.


πŸ”₯ #define ISR_NAKED

ISR is created with no prologue or epilogue code. Which means the user code β€” that's you, bestie β€” is responsible for preservation of the machine state, including the SREG register, as well as placing a reti() at the end of the interrupt routine. huge main character responsibility energy, no safety net πŸ‘‘

Use this attribute in the attributes parameter of the ISR macro.

⚠️ Note

According to GCC documentation, the only code supported in naked functions is inline assembly. that's it. that's the whole menu.


⚑ #define ISR_NOBLOCK

ISR runs with global interrupts initially enabled. The interrupt enable flag is activated by the compiler as early as possible within the ISR, to ensure minimal processing delay for nested interrupts. speed. 🏎️

This may be used to create nested ISRs, however, bestie, care should be taken to avoid stack overflows, or to avoid infinitely entering the ISR for those cases where the AVR hardware does not clear the respective interrupt flag before entering the ISR. infinite ISR is not a vibe, it's a curse 😭

Use this attribute in the attributes parameter of the ISR macro.


🫧 #define ISR_NOGCCISR

Do not generate __gcc_isr pseudo instructions for this ISR. This has an effect with GCC 8 and newer only.

Use this attribute in the attributes parameter of the ISR macro.


πŸ“ #define ISR_NOICF

Avoid identical-code-folding optimization against this ISR. This has an effect with GCC 5 and newer only.

Use this attribute in the attributes parameter of the ISR macro.


🏁 #define reti()

Value:

__asm__ __volatile__ ("reti" ::: "memory")

Returns from an interrupt routine, enabling global interrupts. This should be the last command executed before leaving an ISR defined with the ISR_NAKED attribute. closing the door on your way out πŸšͺ

This macro actually compiles into a single line of assembly, so there's no function call overhead. slay. ✨

⚠️ Note

According to the GCC documentation, the only code supported in naked functions is inline assembly.


πŸ’– #define sei()

Value:

__asm__ __volatile__ ("sei" ::: "memory")

Enables interrupts by setting the global interrupt mask. wakes everything up β˜€οΈ This one also actually compiles into a single line of assembly, so there's no function call overhead. However! The macro also implies a memory barrier, which can cause additional loss of optimization. give and take, bestie, give and take πŸ˜”

In order to implement atomic access to multi-byte objects, consider using the macros from <util/atomic.h>, rather than implementing them manually with cli() and sei(). seriously, they thought of it already.

πŸ’€ #define SIGNAL( vector)

Introduces an interrupt handler function that runs with global interrupts initially disabled.

This is the same as the ISR macro without optional attributes. literally the same thing, just the older name πŸ™ˆ

πŸ’€ Deprecated

Do not use SIGNAL() in new code. Use ISR() instead. okay? okay. moving on πŸ’…


🫢 AUTHOR

Generated automatically by Doxygen for AVR-LibC from the source code. yes, a robot wrote this and it absolutely ate ✨


and that's the whole page, bestie!! πŸ’–πŸŽ€ we went through every single macro and honestly? we understood all of them. this was avr_interrupts(3avr) from AVR-LibC, Version 2.2.1 β€” go forth and interrupt responsibly, mwah πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from