31 #define prog_char char
35 prog_char gAvrInt_RESET[] PROGMEM =
"RESET";
37 prog_char gAvrInt_INT0[] PROGMEM =
"INT0";
40 prog_char gAvrInt_INT1[] PROGMEM =
"INT1";
43 prog_char gAvrInt_INT2[] PROGMEM =
"INT2";
46 prog_char gAvrInt_INT3[] PROGMEM =
"INT3";
49 prog_char gAvrInt_INT4[] PROGMEM =
"INT4";
52 prog_char gAvrInt_INT5[] PROGMEM =
"INT5";
55 prog_char gAvrInt_INT6[] PROGMEM =
"INT6";
58 prog_char gAvrInt_INT7[] PROGMEM =
"INT7";
61 prog_char gAvrInt_PCINT0[] PROGMEM =
"PCINT0";
64 prog_char gAvrInt_PCINT1[] PROGMEM =
"PCINT1";
67 prog_char gAvrInt_PCINT2[] PROGMEM =
"PCINT2";
70 prog_char gAvrInt_PCINT3[] PROGMEM =
"PCINT3";
73 prog_char gAvrInt_WDT[] PROGMEM =
"WDT";
75#ifdef TIMER0_COMP_vect
76 prog_char gAvrInt_TIMER0_COMP[] PROGMEM =
"TIMER0 COMP";
78#ifdef TIMER0_COMPA_vect
79 prog_char gAvrInt_TIMER0_COMPA[] PROGMEM =
"TIMER0 COMPA";
81#ifdef TIMER0_COMPB_vect
82 prog_char gAvrInt_TIMER0_COMPB[] PROGMEM =
"TIMER0 COMPB";
85 prog_char gAvrInt_TIMER0_OVF[] PROGMEM =
"TIMER0 OVF";
87#ifdef TIMER1_CAPT_vect
88 prog_char gAvrInt_TIMER1_CAPT[] PROGMEM =
"TIMER1 CAPT";
90#ifdef TIMER1_COMPA_vect
91 prog_char gAvrInt_TIMER1_COMPA[] PROGMEM =
"TIMER1 COMPA";
93#ifdef TIMER1_COMPB_vect
94 prog_char gAvrInt_TIMER1_COMPB[] PROGMEM =
"TIMER1 COMPB";
96#ifdef TIMER1_COMPC_vect
97 prog_char gAvrInt_TIMER1_COMPC[] PROGMEM =
"TIMER1 COMPC";
100 prog_char gAvrInt_TIMER1_OVF[] PROGMEM =
"TIMER1 OVF";
102#ifdef TIMER2_COMP_vect
103 prog_char gAvrInt_TIMER2_COMP[] PROGMEM =
"TIMER2 COMP";
105#ifdef TIMER2_COMPA_vect
106 prog_char gAvrInt_TIMER2_COMPA[] PROGMEM =
"TIMER2 COMPA";
108#ifdef TIMER2_COMPB_vect
109 prog_char gAvrInt_TIMER2_COMPB[] PROGMEM =
"TIMER2 COMPB";
111#ifdef TIMER2_OVF_vect
112 prog_char gAvrInt_TIMER2_OVF[] PROGMEM =
"TIMER2 OVF";
114#ifdef TIMER3_CAPT_vect
115 prog_char gAvrInt_TIMER3_CAPT[] PROGMEM =
"TIMER3 CAPT";
117#ifdef TIMER3_COMPA_vect
118 prog_char gAvrInt_TIMER3_COMPA[] PROGMEM =
"TIMER3 COMPA";
120#ifdef TIMER3_COMPB_vect
121 prog_char gAvrInt_TIMER3_COMPB[] PROGMEM =
"TIMER3 COMPB";
123#ifdef TIMER3_COMPC_vect
124 prog_char gAvrInt_TIMER3_COMPC[] PROGMEM =
"TIMER3 COMPC";
126#ifdef TIMER3_OVF_vect
127 prog_char gAvrInt_TIMER3_OVF[] PROGMEM =
"TIMER3 OVF";
129#ifdef TIMER4_CAPT_vect
130 prog_char gAvrInt_TIMER4_CAPT[] PROGMEM =
"TIMER4 CAPT";
132#ifdef TIMER4_COMPA_vect
133 prog_char gAvrInt_TIMER4_COMPA[] PROGMEM =
"TIMER4 COMPA";
135#ifdef TIMER4_COMPB_vect
136 prog_char gAvrInt_TIMER4_COMPB[] PROGMEM =
"TIMER4 COMPB";
138#ifdef TIMER4_COMPC_vect
139 prog_char gAvrInt_TIMER4_COMPC[] PROGMEM =
"TIMER4 COMPC";
141#ifdef TIMER4_COMPD_vect
142 prog_char gAvrInt_TIMER4_COMPD[] PROGMEM =
"TIMER4 COMPD";
144#ifdef TIMER4_OVF_vect
145 prog_char gAvrInt_TIMER4_OVF[] PROGMEM =
"TIMER4 OVF";
147#ifdef TIMER4_FPF_vect
148 prog_char gAvrInt_TIMER4_FPF[] PROGMEM =
"TIMER4 Fault Protection";
150#ifdef TIMER5_CAPT_vect
151 prog_char gAvrInt_TIMER5_CAPT[] PROGMEM =
"TIMER5 CAPT";
153#ifdef TIMER5_COMPA_vect
154 prog_char gAvrInt_TIMER5_COMPA[] PROGMEM =
"TIMER5 COMPA";
156#ifdef TIMER5_COMPB_vect
157 prog_char gAvrInt_TIMER5_COMPB[] PROGMEM =
"TIMER5 COMPB";
159#ifdef TIMER5_COMPC_vect
160 prog_char gAvrInt_TIMER5_COMPC[] PROGMEM =
"TIMER5 COMPC";
162#ifdef TIMER5_OVF_vect
163 prog_char gAvrInt_TIMER5_OVF[] PROGMEM =
"TIMER5 OVF";
167#if defined(USART_RX_vect) || defined(USART_RXC_vect)
168 prog_char gAvrInt_USART_RX[] PROGMEM =
"USART RX";
170#if defined(USART_UDRE_vect)
171 prog_char gAvrInt_USART_UDRE[] PROGMEM =
"USART UDRE";
173#if defined(USART_TX_vect) || defined(USART_TXC_vect)
174 prog_char gAvrInt_USART_TX[] PROGMEM =
"USART TX";
179#if defined(USART0_RX_vect)
180 prog_char gAvrInt_USART0_RX[] PROGMEM =
"USART0 RX";
182#if defined(USART0_UDRE_vect)
183 prog_char gAvrInt_USART0_UDRE[] PROGMEM =
"USART0 UDRE";
185#if defined(USART0_TX_vect)
186 prog_char gAvrInt_USART0_TX[] PROGMEM =
"USART0 TX";
192 prog_char gAvrInt_USART1_RX[] PROGMEM =
"USART1 RX";
194#ifdef USART1_UDRE_vect
195 prog_char gAvrInt_USART1_UDRE[] PROGMEM =
"USART1 UDRE";
198 prog_char gAvrInt_USART1_TX[] PROGMEM =
"USART1 TX";
203 prog_char gAvrInt_USART2_RX[] PROGMEM =
"USART2 RX";
205#ifdef USART2_UDRE_vect
206 prog_char gAvrInt_USART2_UDRE[] PROGMEM =
"USART2 UDRE";
209 prog_char gAvrInt_USART2_TX[] PROGMEM =
"USART2 TX";
214 prog_char gAvrInt_USART3_RX[] PROGMEM =
"USART3 RX";
216#ifdef USART3_UDRE_vect
217 prog_char gAvrInt_USART3_UDRE[] PROGMEM =
"USART3 UDRE";
220 prog_char gAvrInt_USART3_TX[] PROGMEM =
"USART3 TX";
223 prog_char gAvrInt_SPI_STC[] PROGMEM =
"SPI STC";
226 prog_char gAvrInt_ADC[] PROGMEM =
"ADC";
228#if defined(ANALOG_COMP_vect) || defined(ANA_COMP_vect)
229 prog_char gAvrInt_ANALOG_COMP[] PROGMEM =
"ANALOG COMP";
231#if defined(EE_READY_vect) || defined(EE_RDY_vect)
232 prog_char gAvrInt_EE_READY[] PROGMEM =
"EE READY";
235 prog_char gAvrInt_TWI[] PROGMEM =
"TWI";
237#if defined(SPM_READY_vect) || defined(SPM_RDY_vect)
238 prog_char gAvrInt_SPM_READY[] PROGMEM =
"SPM READY";
241 prog_char gAvrInt_USI_START[] PROGMEM =
"USI START";
243#ifdef USI_OVERFLOW_vect
244 prog_char gAvrInt_USI_OVERFLOW[] PROGMEM =
"USI OVERFLOW";
247 prog_char gAvrInt_USB_General[] PROGMEM =
"USB General";
250 prog_char gAvrInt_USB_Endpoint[] PROGMEM =
"USB Endpoint";
254 prog_char gAvrInt_LCD_StartFrame[] PROGMEM =
"LCD Start of Frame";
259 prog_char gAvrInt_CAN_TrafnsferCE[] PROGMEM =
"CAN Transfer Complete or Error";
262 prog_char gAvrInt_CAN_TimerOverRun[] PROGMEM =
"CAN Timer Overrun";
266#ifdef TRX24_PLL_LOCK_vect
267 prog_char gAvrInt_TRN_PLL_LOCK[] PROGMEM =
"TRX24_PLL_LOCK";
269#ifdef TRX24_PLL_UNLOCK_vect
270 prog_char gAvrInt_TRN_PLL_UNLOCK[] PROGMEM =
"TRX24_PLL_UNLOCK";
272#ifdef TRX24_RX_START_vect
273 prog_char gAvrInt_TRN_RX_START[] PROGMEM =
"TRX24_RX_START";
275#ifdef TRX24_RX_END_vect
276 prog_char gAvrInt_TRN_RX_END[] PROGMEM =
"TRX24_RX_END";
278#ifdef TRX24_CCA_ED_DONE_vect
279 prog_char gAvrInt_TRN_CAAED_DONE[] PROGMEM =
"TRX24_CCA_ED_DONE";
281#ifdef TRX24_XAH_AMI_vect
282 prog_char gAvrInt_TRN_FRAME_MATCH[] PROGMEM =
"TRX24_FRAME_ADDRESS_MATCH";
284#ifdef TRX24_TX_END_vect
285 prog_char gAvrInt_TRN_TX_END[] PROGMEM =
"TRX24_TX_END";
287#ifdef TRX24_AWAKE_vect
288 prog_char gAvrInt_TRN_AWAKE[] PROGMEM =
"TRX24_AWAKE";
291 prog_char gAvrInt_SCNT_CMP1[] PROGMEM =
"SCNT_CMP1";
294 prog_char gAvrInt_SCNT_CMP2[] PROGMEM =
"SCNT_CMP2";
297 prog_char gAvrInt_SCNT_CMP3[] PROGMEM =
"SCNT_CMP3";
300 prog_char gAvrInt_SCNT_OVFL[] PROGMEM =
"SCNT_OVFL";
302#ifdef SCNT_BACKOFF_vect
303 prog_char gAvrInt_SCNT_BACKOFF[] PROGMEM =
"SCNT_BACKOFF";
306 prog_char gAvrInt_AES_READY[] PROGMEM =
"AES_READY";
309 prog_char gAvrInt_BAT_LOW[] PROGMEM =
"BAT_LOW";
316#if defined(__AVR_ATmega645__ ) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__)
317 prog_char gAvrInt_NOT_USED[] PROGMEM =
"NOT_USED";
319#if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega128RFA1__)
320 prog_char gAvrInt_RESERVED[] PROGMEM =
"Reserved";
323 prog_char gAvrInt_END[] PROGMEM =
"*";
330#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__)
331#pragma mark __AVR_ATmega168__ / __AVR_ATmega328P__ / __AVR_ATmega328__
333#define _INTERRUPT_NAMES_DEFINED_
335PGM_P gInterruptNameTable[] PROGMEM =
345 gAvrInt_TIMER2_COMPA,
346 gAvrInt_TIMER2_COMPB,
349 gAvrInt_TIMER1_COMPA,
350 gAvrInt_TIMER1_COMPB,
352 gAvrInt_TIMER0_COMPA,
353 gAvrInt_TIMER0_COMPB,
369#if defined(__AVR_ATmega169__)
370#pragma mark __AVR_ATmega169__
372#define _INTERRUPT_NAMES_DEFINED_
374PGM_P gInterruptNameTable[] PROGMEM =
384 gAvrInt_TIMER1_COMPA,
385 gAvrInt_TIMER1_COMPB,
394 gAvrInt_USI_OVERFLOW,
399 gAvrInt_LCD_StartFrame,
407#if defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)
408#pragma mark __AVR_ATmega640__ __AVR_ATmega1280__ __AVR_ATmega1281__ __AVR_ATmega2560__ __AVR_ATmega2561__
410#define _INTERRUPT_NAMES_DEFINED_
412PGM_P gInterruptNameTable[] PROGMEM =
426#if defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
432 gAvrInt_TIMER2_COMPA,
433 gAvrInt_TIMER2_COMPB,
436 gAvrInt_TIMER1_COMPA,
437 gAvrInt_TIMER1_COMPB,
438 gAvrInt_TIMER1_COMPC,
440 gAvrInt_TIMER0_COMPA,
441 gAvrInt_TIMER0_COMPB,
453 gAvrInt_TIMER3_COMPA,
454 gAvrInt_TIMER3_COMPB,
455 gAvrInt_TIMER3_COMPC,
463#if defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
468 gAvrInt_TIMER4_COMPA,
469 gAvrInt_TIMER4_COMPB,
470 gAvrInt_TIMER4_COMPC,
472#if defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
477 gAvrInt_TIMER5_COMPA,
478 gAvrInt_TIMER5_COMPB,
479 gAvrInt_TIMER5_COMPC,
482#if defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
499#if defined(__AVR_ATmega324P__ ) || defined(__AVR_ATmega644__ ) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)
500#pragma mark __AVR_ATmega324P__ __AVR_ATmega644__ __AVR_ATmega644P__ __AVR_ATmega1284P__
502#define _INTERRUPT_NAMES_DEFINED_
504PGM_P gInterruptNameTable[] PROGMEM =
516 gAvrInt_TIMER2_COMPA,
517 gAvrInt_TIMER2_COMPB,
520 gAvrInt_TIMER1_COMPA,
521 gAvrInt_TIMER1_COMPB,
523 gAvrInt_TIMER0_COMPA,
524 gAvrInt_TIMER0_COMPB,
536#if defined(__AVR_ATmega324P__ ) || defined(__AVR_ATmega644P__)
548#if defined(__AVR_ATmega1284P__ )
549#pragma mark __AVR_ATmega1284P__
551#define _INTERRUPT_NAMES_DEFINED_
553PGM_P gInterruptNameTable[] PROGMEM =
565 gAvrInt_TIMER2_COMPA,
566 gAvrInt_TIMER2_COMPB,
569 gAvrInt_TIMER1_COMPA,
570 gAvrInt_TIMER1_COMPB,
572 gAvrInt_TIMER0_COMPA,
573 gAvrInt_TIMER0_COMPB,
591 gAvrInt_TIMER3_COMPA,
592 gAvrInt_TIMER3_COMPB,
603#if defined(__AVR_ATmega645__ )
604#pragma mark __AVR_ATmega645__
606#define _INTERRUPT_NAMES_DEFINED_
608PGM_P gInterruptNameTable[] PROGMEM =
618 gAvrInt_TIMER1_COMPA,
619 gAvrInt_TIMER1_COMPB,
628 gAvrInt_USI_OVERFLOW,
635#if defined(__AVR_ATmega3250__) || defined(__AVR_ATmega6450__)
645#if defined(__AVR_ATmega16__ )
646#pragma mark __AVR_ATmega16__
648#define _INTERRUPT_NAMES_DEFINED_
650PGM_P gInterruptNameTable[] PROGMEM =
659 gAvrInt_TIMER1_COMPA,
660 gAvrInt_TIMER1_COMPB,
681#if defined(__AVR_ATmega32__ )
682#pragma mark __AVR_ATmega32__
684#define _INTERRUPT_NAMES_DEFINED_
686PGM_P gInterruptNameTable[] PROGMEM =
696 gAvrInt_TIMER1_COMPA,
697 gAvrInt_TIMER1_COMPB,
717#if defined(__AVR_ATmega32U4__)
718#pragma mark __AVR_ATmega32U4__
721#define _INTERRUPT_NAMES_DEFINED_
724PGM_P gInterruptNameTable[] PROGMEM =
738 gAvrInt_USB_Endpoint,
744 gAvrInt_TIMER1_COMPA,
745 gAvrInt_TIMER1_COMPB,
746 gAvrInt_TIMER1_COMPC,
748 gAvrInt_TIMER0_COMPA,
749 gAvrInt_TIMER0_COMPB,
762 gAvrInt_TIMER3_COMPA,
763 gAvrInt_TIMER3_COMPB,
764 gAvrInt_TIMER3_COMPC,
769 gAvrInt_TIMER4_COMPA,
770 gAvrInt_TIMER4_COMPB,
771 gAvrInt_TIMER4_COMPD,
779#if defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__)
780#pragma mark __AVR_AT90USB1286__
783#define _INTERRUPT_NAMES_DEFINED_
786PGM_P gInterruptNameTable[] PROGMEM =
800 gAvrInt_USB_Endpoint,
802 gAvrInt_TIMER2_COMPA,
803 gAvrInt_TIMER2_COMPB,
806 gAvrInt_TIMER1_COMPA,
807 gAvrInt_TIMER1_COMPB,
808 gAvrInt_TIMER1_COMPC,
810 gAvrInt_TIMER0_COMPA,
811 gAvrInt_TIMER0_COMPB,
824 gAvrInt_TIMER3_COMPA,
825 gAvrInt_TIMER3_COMPB,
826 gAvrInt_TIMER3_COMPC,
839#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega64__)
840#pragma mark __AVR_ATmega64__ __AVR_ATmega128__
841#define _INTERRUPT_NAMES_DEFINED_
844PGM_P gInterruptNameTable[] PROGMEM =
859 gAvrInt_TIMER1_COMPA,
860 gAvrInt_TIMER1_COMPB,
871 gAvrInt_TIMER1_COMPC,
873 gAvrInt_TIMER3_COMPA,
874 gAvrInt_TIMER3_COMPB,
875 gAvrInt_TIMER3_COMPC,
888#if defined(__AVR_AT90CAN32__) || defined(__AVR_AT90CAN64__) || defined(__AVR_AT90CAN128__)
889#pragma mark __AVR_AT90CAN32__ __AVR_AT90CAN64__ __AVR_AT90CAN128__
891#define _INTERRUPT_NAMES_DEFINED_
893PGM_P gInterruptNameTable[] PROGMEM =
908 gAvrInt_TIMER1_COMPA,
909 gAvrInt_TIMER1_COMPB,
910 gAvrInt_TIMER1_COMPC,
914 gAvrInt_CAN_TrafnsferCE,
915 gAvrInt_CAN_TimerOverRun,
924 gAvrInt_TIMER3_COMPA,
925 gAvrInt_TIMER3_COMPB,
926 gAvrInt_TIMER3_COMPC,
938#if defined (__AVR_ATmega128RFA1__)
939#pragma mark __AVR_ATmega128RFA1__
940#define _INTERRUPT_NAMES_DEFINED_
942PGM_P gInterruptNameTable[] PROGMEM =
958 gAvrInt_TIMER2_COMPA,
959 gAvrInt_TIMER2_COMPB,
962 gAvrInt_TIMER1_COMPA,
963 gAvrInt_TIMER1_COMPB,
964 gAvrInt_TIMER1_COMPC,
966 gAvrInt_TIMER0_COMPA,
967 gAvrInt_TIMER0_COMPB,
977 gAvrInt_TIMER3_COMPA,
978 gAvrInt_TIMER3_COMPB,
979 gAvrInt_TIMER3_COMPC,
987 gAvrInt_TIMER4_COMPA,
988 gAvrInt_TIMER4_COMPB,
989 gAvrInt_TIMER4_COMPC,
992 gAvrInt_TIMER5_COMPA,
993 gAvrInt_TIMER5_COMPB,
994 gAvrInt_TIMER5_COMPC,
1007 gAvrInt_USART2_UDRE,
1011 gAvrInt_USART3_UDRE,
1014 gAvrInt_TRN_PLL_LOCK,
1015 gAvrInt_TRN_PLL_UNLOCK,
1016 gAvrInt_TRN_RX_START,
1018 gAvrInt_TRN_CAAED_DONE,
1019 gAvrInt_TRN_FRAME_MATCH,
1027 gAvrInt_SCNT_BACKOFF,
1037#if !defined(_INTERRUPT_NAMES_DEFINED_)
1038 #warning No interrupt string defs for this cpu