Timer interrupt vectors -- documented where?

When I look at examples of interrupt code, I keep seeing what appear to be defined/reserved labels for the compiler to recognize ISR (interrupt service routine) vectors, eg,

ISR(TIMER1_COMPA_vect)

Is there a page where all these vectors are defined/listed?

Is there a way in the Arduino IDE or C++ that allows the programmer to explicitly establish the interrupt vector and write the ISR at a low level, including the interrupt return instruction (without resorting to assembler)?

I'm not sure where those kind of defines are listed. Those come from Atmel, not Arduino (along with defines for the names of registers)

Interrupt vectors are defined as SOURCE_vect, where SOURCE is the entry in the source column of the table at the start of the Interrupts section of the datasheet for the MCU in question (ie, vector number 1 is at address 0 and source is listed as RESET, so the vector is called RESET_vect)

No idea what you're asking in the last section?

Look in hardware/tools/avr/lib/avr/include/avr/iom328p.h in your distribution. Then learn to use grep!

Dr_Quark: Is there a way in the Arduino IDE or C++ that allows the programmer to explicitly establish the interrupt vector and write the ISR at a low level, including the interrupt return instruction (without resorting to assembler)?

https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/wiring.c#L43

List and explanation here www.nongnu.org/avr-libc/user-manual/group_avr_interrupts.html

Mark

MarkT: Then learn to use grep!

For most people, that would be after learning to use Cygwin. :)

Quite a few editors have “find in files” (ie. search multiple files, including sub-folders, for some string).

For the Atmega328 my interrupts page lists the vector names.

http://www.gammon.com.au/interrupts

A bit late, but I found the is of ISRs here: https://github.com/arduino/ArduinoCore-avr/blob/master/bootloaders/stk500v2/avrinterruptnames.h