Параметры функции обработки прерываний ISR() в C
- INT0_vect - внешнее прерывание 0
- INT1_vect - внешнее прерывание 1
- PCINT0_vect - прерывание по изменению состояния нулевой группы выводов
- PCINT1_vect - прерывание по изменению состояния первой группы выводов
- PCINT2_vect - прерывание по изменению состояния второй группы выводов
- WDT_vect - прерывание от сторожевого таймера
- TIMER2_COMPA_vect - прерывание от таймера/счетчика T2 при совпадении с A
- TIMER2_COMPB_vect - прерывание от таймера/счетчика T2 при совпадении с B
- TIMER2_OVF_vect - прерывание по переполнению таймера/счетчика T2
- TIMER1_CAPT_vect - прерывание от таймера/счетчика T1 по записи
- TIMER1_COMPA_vect - прерывание от таймера/счетчика T1 при совпадении с A
- TIMER1_COMPB_vect - прерывание от таймера/счетчика T1 при совпадении с B
- TIMER1_OVF_vect - прерывание по переполнению таймера/счетчика T1
- TIMER0_COMPA_vect - прерывание от таймера/счетчика T0 при совпадении с A
- TIMER0_COMPB_vect - прерывание от таймера/счетчика T0 при совпадении с B
- TIMER0_OVF_vect - прерывание по переполнению таймера/счетчика T0
- SPI_STC_vect - прерывание по окончанию передачи модуля SPI
- USART_RX_vect - прерыванию по окончанию приема модуля USART
- USART_UDRE_vect - прерывание по опустошению регистра данных модуля USART
- USART_TX_vect - прерывание по окончанию приема модуля USART
- ADC_vect - прерывание по завершению преобразования АЦП
- EE_READY_vect - прерывание по готовности памяти EEPROM
- ANALOG_COMP_vect - прерывание от аналогового компаратора
- TWI_vect - прерывание от модуля I2C (TWI)
- SPM_READY_vect - прерывание по готовности flash памяти
Описание функции attachInterrupt для управления прерываниями в Arduino
Прерывание (англ. interrupt) -- сигнал, сообщающий процессору о наступлении какого-либо события. Основные методы:
void attachInterrupt(uint8_t, void (*)(void), int mode);
attachInterrupt(interrupt, function, mode); -- определяет, какую функцию вызывать, когда происходит внешнее прерывание.
Здесь
interrupt -- номер прерывания (int).
Большинство плат Arduino/Freeduino имеют два внешних прерывания с
номерами 0 (на digital pin 2) и 1 (на digital pin 3).
function -- функция, которая должны вызываться при прерывании. Функция не должна принимать параметров и не должна ничего возвращать.
mode -- определяет, когда должно сработать прерывание. Определены следующие константы:
LOW - вызов прерывания всякий раз, когда на порту низкий уровень напряжения;
CHANGE - прерывание вызывается при изменении значения на входе;
RISING - вызов прерывания при изменении уровня напряжения с низкого (LOW) на высокое(HIGH)
FALLING - вызов прерывания при изменении уровня напряжения с высокого (HIGH) на низкое (LOW)
void detachInterrupt(uint8_t);
detachInterrupt(interrupt); -- отключает указанное прерывание.
Подробнее здесь