Внешние прерывания

Внешние прерывания реагируют на изменение уровня сигнала на соответствующем выводе микроконтроллера. В Atmega32 существует два синхронных внешних прерывания INT0-INT1 и асинхронное INT2.

Следующие регистры ввода-вывода управляют внешними прерываниями:

Регистр разрешения соответствующего внешнего прерывания.

Bits 3..0 - ISCX1, ISCX0: External Interrupt 1-0 Sense Control bits - Биты управления опознаванием внешних прерываний с 0 по 1

Внешние прерывания 1 - 0 активируются по выводам INT7 – INT0, если установлен флаг I в SREG и установлена соответствующая маска в GICR. Запрос прерывания по логическому уровню или фронтам определяется в следующей таблице:

Управление опознаванием прерывания ISCX1-ISCX0

0 0 Запрос прерывания генерируется низким уровнем на INTX

0 1 Запрос прерывания генерируется изменением логического уровня INTX

1 0 Запрос прерывания генерируется падающим фронтом на INTX

1 1 Запрос прерывания генерируется нарастающим фронтом на INTX

Примечание: X может быть равен 0, 1.

Бит 6 управляет асинхронным внешним прерыванием INT3

0 Запрос прерывания генерируется падающим фронтом на INT3

1 Запрос прерывания генерируется нарастающим фронтом на INT3

При изменении битов ISCX1/ISCX0 прерывание должно быть запрещено путем очистки бита разрешения в регистре GICR. В ином случае может произойти прерывание. Запрос прерывания по логическому уровню, если он разрешен, будет генерировать запрос прерывания до тех пор, пока на входе будет находиться низкий уровень.

Регистр флагов соответствующих внешних прерываний.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: