- •1.2.2. Выбор источника синхронизации
- •1.2.3. Установка направления счета
- •1.2.4. Выбор сброса Таймера 2.
- •1.2.5. Синхронизация сигналов t2rst, t2clk, и t2Capture
- •1.2.5.1. Одновременная установка сигналов t2rst, t2clk, и t2capture
- •1.3.2. Прерывание переполнения Таймера 2
- •1.3.3. Прерывание фиксатора Таймера 2
- •Timer 2 Capture Register
- •1.3. Прерывания по таймеру
- •1.3.1. Прерывание переполнения таймера
- •Input/Output Control Register 1
- •Input/Output Status Register 1
- •1.4. Предосторожности при работе с Таймерами
- •2. Порядок выполнения работы
- •3. Содержание отчета
1.3. Прерывания по таймеру
С Таймером 1 и Таймером 2 связаны три вектора прерывания:
- прерывание переполнения таймера - Timer Overflow Interrupt (INT00,2000H);
- прерывание переполнения Таймера 2 - Timer 2 Overflow Interrupt (INT12,2038H);
- прерывание фиксатора Таймера 2 - Timer 2 Capture Interrupt (INT11,2036H).
Регистр IOS1 содержит флажки, которые указывают какое событие вызвало прерывание. Обращение к битам регистра IOS1 по командам JBC или JBS обнуляет биты 0-5. По этой причине, мы рекомендуем чтобы Вы копировали содержимое регистра IOS1 в промежуточный регистр и затем выполняли команды проверки разрядов типа JBC или JBS на промежуточном регистре.
1.3.1. Прерывание переполнения таймера
И Таймер 1 и Таймер 2 могут вызвать прерывание переполнения Таймера (INT00). Установите INT_MASK.0 ,чтобы разрешить это прерывание. Установите или IOC1.2 ( Таймер 1 ) или IOC1.3 ( Таймер 2 ) чтобы выбрать источник прерывания. Когда происходит переполнение, устанавливается флажок состояния в регистре IOS1. Переполнение Таймера 1 устанавливает IOS1.5, а переполнение Таймера 2 устанавливает IOS1.4.
Input/Output Control Register 1
IOC1
16H
HWindow 0 (Write), HWindow 15 (Read)
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
||
|
|
|
|
T2OVF_INT |
T1OVF_INT |
|
|
||
Input/Output Status Register 1
IOS1
16H
Hwindow 0 (Write), HWindow 15 (Read)
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
T1_OVF |
T2_OVF |
|
|
|
|
1.3.2. Прерывание переполнения Таймера 2
Таймер 2 может генерировать прерывание переполнения Таймера 2 (INT12, адрес вектора - 2038H) вместо стандартного прерывания переполнения Таймера. Это прерывание разрешается установкой INT_MASK1.4. Переполнение Таймера 2 устанавливает IOS1.4. Таймер 2 может генерировать прерывание переполнения Таймера 2 или на границе 7FFFH/8000H или на границе 0FFFFH/0000H. Переполнение может происходить в любом направлении. IOC2.5 выбирает границу переполнения. Когда IOC2.5 установлен, Таймер 2 прерывается на границе 7FFFH/8000H. Иначе, он прерывается на границе 0FFFFH/0000H.
1.3.3. Прерывание фиксатора Таймера 2
Положительный переход на контакте T2CAPTURE (P2.7) заставляет значение Таймера 2 загружаться в регистр T2CAPTURE. Это событие генерирует прерывание фиксатора Таймера 2 (INT11), если установлен INT_MASK1.3 и T2CAPTURE утверждается в течение более двух времен состояний.
Timer 2 Capture Register
T2CAPTURE
0D/0CH
Hwindow 15(Read /Write)
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
T2_VALUE (HI) |
T2_VALUE (LO) |
||||||||||||||
