Внешние прерывания
В ATmega128x для разрешения/запрещения внешних прерываний предназначен регистр EIMSK (External Interrupt MaSK—регистр маски внешних прерываний), расположенный по адресу $39 ($59). Формат этого регистра показан на Рис. 3.1. Рис. 3.1. Формат регистра EIMSK Каждый разряд INTx регистра отвечает за разрешение/запрещение прерывания с номером, соответствующим номеру разряда. Если n- й разряд регистра установлен в «1» и флаг I регистра SREG также установлен в «1», то прерывание с вывода INT n разрешено. Условия генерации прерываний определяются регистрами EICRA («А» регистр управления внешними прерываниями) и EICRB («В» регистр управления внешними прерываниями), расположенных по адресам $6A и $3A ($5A) соответственно. Формат этих регистров показан на Рис. 2.2, а описание их разрядов приведено в Табл. 3.2.
Рис. 3.1. Формат регистров EICRA и EICRB
Таблица 3.2. Определение условий генерации внешних прерываний Определение условий генерации внешних прерываний (разряды регистров EICRA и EICRB) Для индикации возникновения внешних прерываний в ATmega128x предназначен регистр EIFR (External Interrupt Flag Register — регистр флагов внешних прерываний), расположенный по адресу $38 ($58). Формат этого регистра показан на Рис. 3.3
Рис. 3.3. Формат регистра EIFR
При возникновении запроса на прерывание на выводе INT n соответствующий флаг INTF n (n- й разряд регистра) устанавливается в «1». Флаг сбрасывается аппаратно при запуске подпрограммы обработки прерывания или программно, записью в него лог. 1.
Глава4. Порты ввода/вывода
Каждый порт микроконтроллера состоит из определенного числа выводов, через которые микроконтроллер может осуществлять прием и передачу цифровых сигналов. Задание направления передачи данных через любой контакт ввода/вывода может быть произведено программно в любой момент времени. ATmega128x имеет шесть 8_разрядных порта ввода/вывода (порты A, B, C, D, E, F) и один 5_разрядный порт ввода/вывода G. Всего контактов ввода/вывода 53.
|