ПРЕРЫВАНИЯ СЧЕТЧИКОВ

Со счетчиками 1 и 2 связаны три вектора прерывания:
- прерывание переполнения счетчика - Timer Overflow Interrupt (INT00, 8000H);
- прерывание переполнения счетчика 2 - Timer2 Overflow Interrupt (INT12, 8038H);
- прерывание захвата счетчика 2 - Timer 2 Capture Interrupt (INT11, 8036H).

Регистр состояния IOS1 (см. Приложение) содержит флаги, которые указывают, какое событие вызвало прерывание. Чтение регистра IOS1 очищает биты 0-5. По этой причине рекомендуется копировать содержимое регистра IOS1 в промежуточный регистр и затем выполнять команды проверки разрядов типа JBC или JBS на промежуточном регистре.

Прерывание переполнения счетчиков

И счетчик 1, и счетчик 2 могут вызвать прерывание переполнения счетчика (INT00). Чтобы разрешить это прерывание, нужно установить нулевой бит в регистре маскирования прерываний INT_MASK (см. Приложение). А чтобы задать источник прерывания, надо установить или второй бит в регистре управления IOC1 (счетчик 1), или третий - IOC1.3 (счетчик 2). При переполнении счетчика аппаратно устанавливается флаг в соответствующем разряде регистра состояния IOS1. Переполнение счетчика 1 устанавливает пятый бит в регистре IOS1, а переполнение счетчика 2 устанавливает бит IOS1.4.

Прерывание переполнения счетчика 2

Счетчик 2 может генерировать прерывание переполнения счетчика 2 (INT12) вместо стандартного прерывания переполнения счетчика. Это прерывание разрешается записью "1" в четвертом разряде регистра маскирования INT_MASK1 (см. Приложение). При переполнении второго счетчика устанавливается бит IOS1.4. Счетчик 2 может генерировать прерывание переполнения на границе 7FFFH/8000H (вычитающий счет), или на границе 0FFFFH/0000H (суммирующий счет). Переполнение может происходить в любом направлении. Программируя бит IOC2.5, мы выбираем границу переполнения счетчика. Когда бит IOC2.5 установлен, счетчик 2 генерирует прерывание на границе 7FFFH/8000H, иначе - на границе 0FFFFH/0000H.

Прерывание захвата счетчика 2

Положительный переход на счетном входе T2CAPTURE (P2.7) заставляет значение счетчика 2 загружаться в регистр T2CAPTURE. Это событие генерирует прерывание захвата счетчика 2 (INT11), если высокий уровень сигнала на входе сохраняется в течение более двух временных состояний и если установлен бит INT_MASK1.3.

Аббревиатура -T2CAPTURE

Размер - 2 байта

Находится по адресу 0D/0CH

Использовать для записи/чтения в окне HWindow 15

В таблице 6.2 приведены разряды регистров управления, программирование которых задает соответствующие опции счетчика 2. Столбец 2 приводит результат установки единичного значения разряда, столбец 3 - результат записи нуля.

Таблица 6.2
Биты регистраБит = 1Бит = 0
IOC0.1Сброс счетчика 2 при каждой записиНет действия
IOC0.3Разрешает внешний сброс счетчика 2Запрещает внешний сброс счетчика 2
IOC0.5Выбирает в качестве внешнего источника сброса вывод HSI.0.0Выбирает в качестве внешнего источника сброса вывод T2RST (P2.4)
IOC0.7Выбирает в качестве внешнего источника синхронизации счетный вывод HSI.1Выбирает в качестве внешнего источника синхронизации счетный вывод T2CLK (P2.3)
ВключаетОтключает
IOC1.3счетчик 2 как источник генерирования прерывания "Переполнение cчетчика" (INT00)
IOC2.0Включает режим быстрого приращенияОтключает режим быстрого приращения
IOC2.1Включает вычитающий счетТолько суммирующий счет
IOC2.5Прерывание переполнения на границе 7FFFH/8000HПрерывание переполнения на границе 0FFFFH/0000H

<<< Содержание >>>