Для получения буферированной ШИМ используют режим буферированного выходного сравнения, при котором каналы объединяются по парам, и для генерации ШИМ-сигнала на одном выводе используются регистры сразу двух каналов захвата/сравнения. Вследствие этого, число линий с ШИМ-сигналами для любого процессора событий TIM08 сокращается вдвое. Особенности инициализации модулей захвата/сравнения в режиме буферированной ШИМ определяются правилами инициализации канала на режим буферированного выходного сравнения.
Формат регистров специальных функций каналов захвата/сравнения представлен в Табл. 3.98...3.100.
Табл. 3.98. Формат регистра TxSCi
| | | | | | | | |
| TxSCi
| Регистр управления модулем "i" захвата/сравнения
|
| TIM Channel i Status and Control Register
| 7
| 6
| 5
| 4
| 3
| 2
| 1
| 0
| CHiF
| CHilE
| MSiB
| MSiA
| ELSiB
| ESLiA
| TOVi
| CHiMAX
| Состояние при сбросе: $00
| Имя бита
| Назначение бита
| CHiF
| Флаг наступления события в модуле захвата/сравнения "i" (Channel"i" Rag Bit).
Бит наступления события устанавливается в 1 , если: Модуль установлен в режим захвата внешнего события, и соответствующее изменение уровня сигнала на наблюдаемом входе произошло. Модуль установлен в режим выходного сравнения и момент равенства текущего кода таймера-счетчика коду, записанному в регистре данных модуля, наступил. При попытке сброса в 0 программными средствами флаг CHiF в 0 не устанавливается. Для сброса флага наступления события необходимо выполнить следующую последовательность действий: Прочитать регистр TxSCi при уже установленном флаге CHiF. Записать 0 в бит CHiF. Если следующее событие переполнения произойдет до того момента, когда в бит CHiF запишут 0, то флаг CHiF не сбросится. Таким образом блокируется пропуск возможного запроса на прерывание, в подпрограмме обслуживания которого осуществляется перезапись значений других регистров модуля. Попытка записать 1 в бит CHiF не изменит состояние бита и не будет иметь никаких других последствий
| CHilE
| Бит разрешения прерывания по событию модуля "i" (Channel "i" Interrupt Enable Bit).
1 - прерывания или обслуживание контроллером ПДП по событию модуля разрешены.
0 - прерывания и режим ПДП по событию модуля запрещены.
Этот бит разрешает генерацию запроса на прерывание или запроса на прямой доступ к памяти, если бит CHiF установлен. Бит доступен как для записи, так и для чтения. При сбросе МК прерывания и режим ПДП по запросу модуля запрещаются
| MsiB
| Бит разрешения буферированного режима сравнения/ШИМ (Mode Select Bit В).
1 - режим буферированного сравнения/ШИМ разрешен.
0 - модуль работает в режиме небуферированного сравнения/ШИМ.
Этот бит может быть установлен в 1 только в модулях с нечетными номерами Т, которые являются "ведущими" в паре каналов, реализующих буферированный режим. Установка бита в 1 автоматически запрещает работу канала с четным номером * i + Г, и вывод ТСН " i + Г, связанный с каналом " i + Г, становится обычной линией ввода/вывода. При сбросе МК устанавливается небуферированный режим работы
| MSiA
| Бит выбора режима модуля Т (Mode Select Bit A).
Если значение битов ELSiB и ELSiA не равно 00, то бит MSiA определяет режим работы модуля:
1 - модуль работает в режиме сравнения/ШИМ.
0 - модуль работает в режиме входного захвата.
Если значение битов ELSiB и ELSiA равно 00, то бит MSiA определяет начальный логический уровень на выходе TCHi:
1 - начальный логический уровень равен 0.
0 - начальный логический уровень равен 1 .
Бит доступен для записи и для чтения. При сбросе МК бит устанавливается в 0
| ELSiB…ELSiA
| Биты активного перепада в режиме захвата (Edge/Level Select Bits).
Если канал "i" установлен в режим захвата, то эти биты определяют активный перепад сигнала на входе TCHi, при котором устанавливается бит Chip 01 - активный уровень - перепад из 0 в 1 . 10 - активный уровень - перепад из 1 в 0. 1 1 - активный уровень - любое изменение уровня сигнала. Если канал Т установлен в режим выходного сравнения, то эти биты определяют алгоритм изменения сигнала при наступлении события равенства кодов: 01 - инвертирует сигнал на выходе. 10 - устанавливает на выходе 0 при сравнении. 1 1 - устанавливает на выходе 1 при сравнении. Биты доступны для записи и для чтения. При сбросе МК устанавливается в 00
| TOVi
| Бит разрешения переключения выхода при переполнении тайме-ра-счетчика/ШИМ (Togle ON Overflow).
Бит TOVi определяет способ изменения сигнала на выходе TCHi при переполнении счетчика таймера, когда модуль работает в режиме сравнения/ШИМ.
1 - выход изменяет состояние на противоположное.
0 - выход не изменяет состояния. Бит доступен для записи и чтения. Сброс МК устанавливает бит в 0
| ChiMAX
| Бит максимального коэффициента заполнения в режиме ШИМ (Channel "i" Maximum Duty Cycle Bit).
Этот бит оказывает влияние на работу модуля захвата/сравнения только в режиме ШИМ.
1 - коэффициент заполнения g=1.
0 - коэффициент заполнения определяется кодом регистра данных канала.
Бит доступен для записи и для чтения. При сбросе МК бит устанавливается в 0
|
Внимание! Если бит TOVi установлен и события выходного сравнения и переполнения таймера-счетчика наступили одновременно, то сигнал на выходе TxCHi будет формироваться в соответствии с логикой, определяемой битом TOVi.
Табл. 3.99. Формат регистра TxCHiH
| | | | | | | | |
| TxCHiH
| Регистр данных канала захвата/сравнения "i" (старший байт)
|
| TIM Channel"i" Register High
| 7
| 6
| 5
| 4
| 3
| 2
| 1
| 0
| TxCHi15
| TxCHi14
| ТхСНi13
| ТхСНi12
| TxCHi11
| TxCHi10
| TxCHi9
| TxCHi8
| Сброс не влияет на состояние регистра
| Имя бита
| Назначение бита
| ТхСНi15..TxCHi8
| Старший байт регистра данных канала захвата/сравнения.
Регистр доступен для чтения и для записи. Если канал работает в режиме входного захвата, то операция чтения старшего байта регистра данных (т.е. рассматриваемого регистра TxCHiH) блокирует исполнение нового входного захвата до выполнения операции чтения младшего байта регистра данных TxCHiL. Если канал работает в режиме выходного захвата, то операция записи в старший байт регистра данных (т.е. в рассматриваемый регистр TxCHiH) блокирует исполнение нового выходного сравнения до выполнения операции записи в младший байт регистра данных TxCHiL
|
Табл. 3.100. Формат регистра TxCHiL
| | | | | | | | |
| TxCHiL
| Регистр данных канала захвата/сравнения "i" (младший байт)
|
| TIM Channel "i" Register Low
| 7
| 6
| 5
| 4
| 3
| 2
| 1
| 0
| TxCHi7
| TxCHi6
| TxCHi5
| TxCHi4
| TxCHi3
| TxCHi2
| TxCHi1
| TxCHi0
| Сброс не влияет на состояние регистра
| Имя бита
| Назначение бита
| TxCHi7...TxCHi0
| Младший байт регистра данных канала захвата/сравнения.
Регистр доступен для чтения и для записи. Особенности работы с регистром см. в Табл. 3.99
|
Регистры модулей процессора событий
Имена модулей процессора событий в различных типах МК семейства НС08, полный перечень регистров специальных функций этих модулей и их адреса приведены в Табл. 3.101...3.105. Соответствие линий входов/выходов модулей процессоров событий линиям портов ввода/вывода устанавливает Рис. 3.51.
Табл. 3.101. Регистры специальных функций модулей процессора событий МК HC908GP32/20
| | | | | |
| Модуль TIM 1
| Модуль TIM2
| Имя регистра
| Обозначение
| Адрес
| Имя регистра
| Обозначение
| Адрес
| ТАЙМЕР-СЧЕТЧИК ВРЕМЕННОЙ БАЗЫ 1
| ТАЙМЕР-СЧЕТЧИК ВРЕМЕННОЙ БАЗЫ 2
| Регистр управления таймером-счетчиком 1
| T1SC
| $0020
| Регистр управления таймером-счетчиком 2
| T2SC
| $002B
| Регистр текущего значения таймера-счетчика 1 (старший байт)
| T1CNTH
| $0021
| Регистр текущего значения таймера-счетчика 2 (старший байт)
| T2CNTH
| $002C
| Регистр текущего значения таймера-счетчика 1 (младший байт)
| T1CNTL
| $0022
| Регистр текущего значения таймера-счетчика 2 (младший байт)
| T2CNTL
| $0020
| Регистр периода таймера-счетчика 1 (старший байт)
| T1MODH
| $0023
| Регистр периода таймера-счетчика 2 (старший байт)
| T2MODH
| $002E
| Регистр периода таймера-счетчика 1 (младший байт)
| T1MODL
| $0024
| Регистр периода таймера-счетчика 2 (младший байт)
| T2MODL
| $002F
| КАНАЛ ЗАХВАТА/СРАВНЕНИЯ 0
| КАНАЛ ЗАХВАТА/СРАВНЕНИЯ 0
| Регистр управления каналом 0
| T1SC0
| $0025
| Регистр управления каналом 0
| T2SC0
| $0030
| Регистр данных канала 0 (старший байт)
| Т1СН0Н
| $0026
| Регистр данных канала 0 (старший байт)
| Т2СН0Н
| $0031
| Регистр данных канала 0 (младший байт)
| T1CH0L
| $0027
| Регистр данных канала 0 (младший байт)
| T2CH0L
| $0032
| КАНАЛ ЗАХВАТА/СРАВНЕНИЯ 1
| КАНАЛ ЗАХВАТА/СРАВНЕНИЯ 1
| Регистр управления каналом 1
| T1SC1
| $0028
| Регистр управления каналом 1
| T2SC1
| $0033
| Регистр данных канала 1 (старший байт)
| Т1СН1Н
| $0029
| Регистр данных канала 1 (старший байт)
| Т2СН1Н
| $0034
| Регистр данных канала 1 (младший байт)
| T1CH1L
| S002A
| Регистр данных канала 1 (младший байт)
| T2CH1L
| $0035
|
Табл. 3.102. Регистры специальных функций модулей процессора событий МК HC908MR32/24
Модуль TIMA
| Модуль TIMB
| Имя регистра
| Обозначение
| Адрес
| Имя регистра
| Обозначение
| Адрес
| ТАЙМЕР-СЧЕТЧИК ВРЕМЕННОЙ БАЗЫ А
| ТАЙМЕР-СЧЕТЧИК ВРЕМЕННОЙ БАЗЫ В
| Регистр управления таймером-счетчиком А
| TASC
| $000Е
| Регистр управления таймером-счетчиком В
| TBSC
| $0051
| Регистр текущего значения таймера-счетчика А (старший байт)
| TACNTH
| $000F
| Регистр текущего значения таймера-счетчика В (старший байт)
| TBCNTH
| $0052
| Регистр текущего значения таймера-счетчика А (младший байт)
| TACNTL
| $0010
| Регистр текущего значения таймера-счетчика В (младший байт)
| TBCNTL
| $0053
| Регистр периода таймера-счетчика А (старший байт)
| TAMODH
| $0011
| Регистр периода таймера-счетчика В (старший байт)
| TBMODH
| $0054
| Регистр периода таймера-счетчика А (младший байт)
| TAMODL
| $0012
| Регистр периода таймера-счетчика В (младший байт)
| TBMOOL
| $0055
| КАНАЛ ЗАХВАТА/СРАВНЕНИЯ 0
| КАНАЛ ЗАХВАТА/СРАВНЕНИЯ 0
| Регистр управления каналом 0
| TASC0
| $0013
| Регистр управления каналом 0
| TBSC0
| $0056
| Регистр данных канала 0 (старший байт)
| ТАСН0Н
| $0014
| Регистр данных канала 0 (старший байт)
| ТВСН0Н
| $0057
| Регистр данных канала 0 (младший байт)
| TACH0L
| $0015
| Регистр данных канала 0 (младший байт)
| TBCH0L
| $0058
| КАНАЛ ЗАХВАТА/СРАВНЕНИЯ 1
| КАНАЛ ЗАХВАТА/СРАВНЕНИЯ 1
| Регистр управления каналом 1
| TASC1
| $0016
| Регистр управления каналом 1
| TBSC1
| $005А
| регистр данных канала 1 (старший байт)
| ТАСН1Н
| $0017
| Регистр данных канала 1 (старший байт)
| ТВСН1Н
| S005B
| Регистр данных канала 1 (младший байт)
| TACH1L
| $0018
| Регистр данных канала 1 (младший байт)
| TBCH1L
| $005С
| КАНАЛ ЗАХВАТА/СРАВНЕНИЯ 2
|
|
|
| Регистр управления каналом 2
| TASC2
| $0019
|
|
|
| Регистр данных канала 2 (старший байт)
| ТАСН2Н
| S001A
|
|
|
| Регистр данных канала 2 (младший байт)
| TACH2L
| $001 В
|
|
|
| КАНАЛ ЗАХВАТА/СРАВНЕНИЯ 3
|
|
|
| Регистр управления каналом 3
| TASC3
| $001С
|
|
|
| Регистр данных канала 3 (старший байт)
| ТАСНЗН
| $0010
|
|
|
| Регистр данных канала 3 (младший байт)
| TACH3L
| $001 Е
|
|
|
|
|