Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[69]

Генератор вектора прерывания TBIV

Флаг TBIFG и флаги TBCCRx CCIFG (кроме TBCCR0 CCIFG) распределены по приоритетам и объединены в источник одного вектора прерывания. Регистр вектора прерывания TBIV используется для определения, какой флаг запросил прерывание.

Разрешенное прерывание с наивысшим приоритетом (кроме TBCCR0 CCIFG) генерирует число в регистре TBIV (см. описание регистра). Можно оценить это число или добавить его к программному счетчику для автоматического входа в соответствующую процедуру программы. Запрещенные прерывания таймера В не воздействуют на значение TBIV.

Любой тип доступа: чтение или запись регистра TBIV автоматически сбрасывает флаг наивысшего ожидающего прерывания. Если установлен другой флаг прерывания, будет немедленно сгенерировано другое прерывание после обработки изначального прерывания. К примеру, если флаги TBCCR1 и TBCCR2 CCIFG установлены, когда процедура обработки прерывания обращается к регистру TBIV, флаг TBCCR1 CCIFG автоматически сбрасывается. После выполнения команды процедуры обработки прерывания RETI, флаг TBCCR2 CCIFG генерирует другое прерывание.

Пример программного обеспечения, использующего TBIV

Приведенный далее пример программного обеспечения показывает рекомендуемое использование TBIV и величину издержек времени на управление. Значение TBIV добавляется к программному счетчику РС для автоматического перехода к соответствующей программной процедуре.

Числа в правом поле показывают необходимое количество циклов ЦПУ для каждой команды. Программные издержки различных источников прерывания включают задержку прерывания и циклы возврата из прерывания, но не учитывают собственно время обработки задачи. Задержки делятся на:

•Блок захвата/сравнения CCR011 циклов

•Блоки захвата/сравнения с CCR1 по CCR616 циклов

•Переполнение таймера TBIFG14 циклов

Следующий пример программного обеспечения показывает рекомендуемое использование TBIV для таймера В3:

;Обработчик прерывания для TBCCR0 CCIFG.Циклы

CCIFG 0 HND

... ;Начало времени задержки обработчика прерывания 6 RETI5

;Обработчик прерывания для TBIFG, TBCCR1 и TBCCR2 CCIFG.

TB HND$;Задержка прерывания6

ADD &TBIV,PC ;Добавление смещения к таблице переходов 3 RETI;Вектор 0: Нет прерывания5

JMP CCIFG 1 HND ;Вектор 2: Модуль 12


JMP RET RET RET RET

TBIFG HND

CCIFG 2 HND ;Вектор 4: Модуль 2

I;Вектор 6

I;Вектор 8

I;Вектор 10

I;Вектор 12

;Вектор 14: Флаг TIMOV ;Задача стартует здесь

CCIFG 2 HND

CCIFG 1 HND JMP TB HND

;Вектор 4: Модуль 2 ;Задача стартует здесь

;Назад к главной программе5

;Модуль 1 обработчика позволяет узнать,

;что ожидается любое другое прерывание:

;на это тратится 5 циклов, но 9 циклов можно

;сэкономить, если ожидается другое прерывание

;Вектор 6: Модуль 3

;Задача стартует здесь

;Просмотр ожидающих прерываний2

12.3. Регистры таймера В

Перечень регистров таймера В приведен в таблице 12-5.

Таблица 12-5. Регистры Таймера В.

Регистр

Краткое обозначение

Тип регистра

Исходное состояние

Управление Таймером В

Чтение/запись

Сброс с POR

Счетчик Таймера В

Чтение/запись

Сброс с POR

Регистр 0 управления захватом/ сравнением таймера В

TBCCTL0

Чтение/запись

Сброс с POR

Регистр 0 захвата/сравнения таймера В

Чтение/запись

Сброс с POR

Регистр 1 управления захватом/ сравнением таймера В

TBCCTL1

Чтение/запись

Сброс с POR

Регистр 1 захвата/сравнения таймера В

Чтение/запись

Сброс с POR

Регистр 2 управления захватом/ сравнением таймера В

TBCCTL2

Чтение/запись

Сброс с POR

Регистр 2 захвата/сравнения таймера В

Чтение/запись

Сброс с POR

Регистр 3 управления захватом/ сравнением таймера В

TBCCTL3

Чтение/запись

Сброс с POR

Регистр 3 захвата/сравнения таймера В

Чтение/запись

Сброс с POR


Регистр

Краткое обозначение

Тип регистра

Исходное состояние

Регистр 4 управления захватом/ сравнением таймера В

TBCCTL4

Чтение/запись

Сброс с POR

Регистр 4 захвата/сравнения таймера В

Чтение/запись

Сброс с POR

Регистр 5 управления захватом/ сравнением таймера В

TBCCTL5

Чтение/запись

Сброс с POR

Регистр 5 захвата/сравнения таймера В

Чтение/запись

Сброс с POR

Регистр 6 управления захватом/ сравнением таймера В

TBCCTL6

Чтение/запись

Сброс с POR

Регистр 6 захвата/сравнения таймера В

Чтение/запись

Сброс с POR

I Вектор прерывания Таймера В

Только чтение 011Eh Сброс с POR

TBCTL, регистр управления таймером В

15141312 I

используется

TBCLGRPx

используется

TBSSELx

rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0)

7 6 5 4

3 2 10

используется

rw-(0) rw-(0) rw-(0) rw-(0) rw-(0)

rw-(0) rw-(0)

I Не используется I Бит 15 Не используется

TBCLGRP

Биты 14-13

Биты 12-11

Группировка TBCLx

00- Каждая защелка TBCLx загружается независимо

01- TBCL1+TBCL2 (биты TBCCR1 CLLDx управляют обновлением)

TBCL3+TBCL4 (биты TBCCR3 CLLDx управляют обновлением) TBCL5+TBCL6 (биты TBCCR5 CLLDx управляют обновлением) TBCL0 независим

10- TBCL1+TBCL2+TBCL3 (биты TBCCR1 CLLDx управляют обновлением)

TBCL4+TBCL5+TBCL6 (биты TBCCR4 CLLDx управляют обновлением)

TBCL0 независим

11- TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6

(биты TBCCR1 CLLDx управляют обновлением)

Длина счетчика

00- 16-разрядный, TBR(max) = 0FFFFh

01- 12-разрядный, TBR(max) = 0FFFh

10- 10-разрядный, TBR(max) = 03FFh

11- 8-разрядный, TBR(max) = 0FFh



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120]