Прерывания от таймеров/счетчиков
Для разрешения/запрещения прерываний от таймеров/счетчиков T0, T1 и T2 предназначен регистр TIMSK (Timer/Counter Interrupt MaSK Register — регистр маски прерываний от таймеров/счетчиков). Этот регистр расположен по адресу $37($57),. Формат этого регистра показан на Рис.5.1, а описание его разрядов приведено в Табл.5.2.
Рис.5.1. Формат регистра TIMSK
Таблица5,2. Разряды регистра TIMSK
Для разрешения/запрещения прерываний от таймеров/счетчиков T1 и T3 в ATmega128x имеется еще один регистр — ETIMSK (Enaible Timer/Counter Interrupt MaSK Register — регистр разрешения чтения маски прерываний от таймеров/счетчиков), расположенный по адресу ($7D) в пространстве дополнительных регистров ввода/вывода. Формат этого регистра приведен на Рис.5.2, а описание его разрядов — в Табл. 5.3
Рис.5.2. Формат регистра ETIMSK Таблица 5.3. Разряды регистра ETIMSK
Для разрешения какого_либо прерывания от таймера/счетчика необходимо установить в «1» соответствующий разряд регистра TIMSK (ETIMSK) и, разумеется, флаг I регистра SREG. Для индикации наступления прерываний от таймеров T0, T1 и T2 предназначен регистр TIFR (Timer/Counter Interrupt Flag Register — регистр флагов прерываний от таймеров/счетчиков). Этот регистр расположен по адресу $36 ($56), . Формат этого регистра показан на Рис.5.3, а описание его разрядов приведено в Табл.5.4.
Для индикации прерываний от таймеров/счетчиков T1 и T3 предназначен регистр ETIFR, расположенный по адресу ($7C) в пространстве дополнительных регистров ввода/вывода. Формат этого регистра приведен на Рис. 5.4 а описание его разрядов — в Табл. 5.5 Рис.5.4.Формат регистра ETIFR
Таблица 5.5. Разряды регистра ETIFR При наступлении какого_либо события соответствующий флаг регистра TIFR (ETIFR) устанавливается в «1». При запуске подпрограммы обработки прерывания он аппаратно сбрасывается в «0». Любой флаг может быть сброшен в «0» также программно путем записи в него лог. 1.
|