1 Презентация. Обработка прерываний ПЛАН Системный сброс WatchDog Timer Обработка прерываний
2 RESET (СБРОС) ARM7 Источники сброса: RESET пин контроллера Watchdog Reset Power-On Reset (POR) Brown-Out-Detector (BOD) Reset Режим работы – Supervisor (сохранение регистров R13-R14) Адрес вектора прерывания 0х
3 РЕГИСТР ИДЕНТИФИКАЦИИ ИСТОЧНИКОВ СБРОСА Reset Source Identification Register (RSIR) В Keil - RSID POREXTRWDTRBODTR- D0D1D2D3D4-D7 Если POR=1, сброс выполнен по POWER-ON Если EXTR=1, сброс по RESET Сброс по Watchdog Сброс по BOD
4 Внешний сброс Особенности: Триггер Шмидта во входной цепи Фильтр импульсных помех Минимальная длительность внешнего сброса 10мС при включении питания и 300нС в остальных режимах Совместно с P0.14 используется для включения внутрисхемного программирования
5 WatchDog Timer (WDT) Особенности: Выполняет сброс контроллера если WDT не перезагружается при помощи feed последовательности (например, при зависании программы). Режим отладки Некорректная feed последовательность вызывает сброс или прерывание, если оно разрешено. Устанавливается WDTR флаг при сбросе от WDT В основе - программируемый 32-разрядный таймер с внутренним предварительным делителем.
6 Диаграмма функционирования WatchDog таймера Минимальный интервал = T PCLK x256x4 Максимальный интервал = T PCLK x2 32 x4
7 РЕГИСТР КОНФИГУРАЦИИ СТОРОЖЕВОГО ТАЙМЕРА Watchdog Mode register (WDMOD) WDENWDRESETWDTOFWDINT- D0D1D2D3D4-D7 Если WDEN=1, разрешена работа WDT Если WDRESET=1, разрешен сброс Сброс выполнен Флаг прерывания Пример: WDMOD=0x03 ; // Разрешить работу и сброс по WDT
8 Регистры WatchDog Timer WDMOD Регистр режима WDT. Содержит биты статуса и управления режимом. WDTC Регистр константы таймера. Определяет время переполнения таймера. WDFEED Регистр последовательности отключения. (Сначала 0x55, затем 0xAA) WDTV Регистр значения таймера. Определяет текущее время таймера.
9 Прерывания Особенности: ARM PrimeCell векторный контроллер прерываний 32 источника прерывания 16 векторов IRQ прерывания. 16 уровней приоритета прерываний с возможностью динамического переназначения Режимы: Быстрое прерывание FIQ Невекторное прерывание IRQ Векторное прерывание IRQ
10 Прерывание от внешнего источника Особенности: FIQ или IRQ прерывание Входы EINT0-EINT1 подключены к P0,P1 Прерывание по фронту, срезу или уровню внешнего источника При возврате из прерывания соответствующий бит регистра EXTINT должен быть очищен
11 Регистры прерывания от внешнего источника EXTINT Регистр флагов внешнего прерывания. При записи лог.1 – сбрасывает флаг. INTWAKE Регистр разрешения пробуждения контроллера при прерывании. EXTMODE Регистр режима прерывания. Лог.0 – по уровню, Лог. 1 – по фронту или срезу. EXTPOLAR Регистр полярности внешнего сигнала. Лог.0 – прерывание по срезу или по низкому уровню, в зависимости от EXTMODE; Лог. 1 – по фронту или высокому уровню..
12 РЕГИСТР ФЛАГОВ ВНЕШНЕГО ПРЕРЫВАНИЯ (EXTINT) EINT0EINT1EINT2EINT3- D0D1D2D3D4-D7 Флаг прерывания от внешнего входа INT0 Пример: EXTINT=0x01 ; // Сбросить внешнее прерывание 0 При чтении флага определяется источник прерывания При записи лог.1 флаг сбрасывается
13 Структура регистров управления прерываниями
14 Быстрое прерывание FIQ Особенности: Режим работы – FIQ (сохранение R7-R14) Адрес вектора прерывания 0х C Приоритет прерывания – 3 Устанавливает флаг F регистра CPSR Рекомендуется только один источник