Инициализация продвинутого таймера
![]() |
![]() |
| Си | |
| в палитре | на схеме |
Описание
Блок настройки продвинутого таймера ШИМ. Данный блок позволяет настроить продвинутые таймеры TIMER0 или TIMER7. Таймер может работать в двух режимах, простого таймера, если выходы каналов таймера отключены, или в режиме полноценного ШИМ на 3 прямых и 3 инвертированных канала с формированием защитной паузы (мертвого времени) плюс одним дополнительный прямым каналом ШИМ. Также возможно настроить вход защиты BRAKE, который сбрасывает состояния выходов таймера в исходное состояние. Таймер может вызывать одновременно два прерывания: по событию обновления счета (UPD) или по событию на одном из каналов таймера (CH) и по событию на входе BRAKE (BRK). Для каждого из прерываний предусмотрено подключение внешнего алгоритма из проекта, подключенного в пакет SimInTech. В прерывании по обновлению счета (UPD) или событию на канале таймера (CH) можно настроить инкрементирование программного таймера основного алгоритма main, для работы функции "сна". Включение запросов DMA на данный момент недоступно. Управление теневыми (shadow) регистрами таймера на данный момент недоступно, по умолчанию все теневые функции записи регистров таймера включены.
При кодогенерации используется стандартная библиотека GD32F10X v2.2.0, предоставляемая производителем микроконтроллеров GigaDevice. Подробные настройки можно найти в документации на микроконтроллер.
Входные порты
| Имя | Описание | Тип линии связи |
|---|---|---|
| sort_block | Вход сортировки блока | Математическая |
Выходные порты
| Имя | Описание | Тип линии связи |
|---|---|---|
| ready | Выход сортировки блока | Математическая |
Свойства
| Название | Имя | Описание | По умолчанию | Тип данных |
|---|---|---|---|---|
| Таймер | TIMER | Возможные значения: "TIMER0", "TIMER7" | TIMER0 | Перечисление |
| Функция инициализации пинов порта | REMAP | Возможные значения: "ALTERNATE","PART_REMAP", "FULL_REMAP" | ALTERNATE | Перечисление |
| Делитель тактовой частоты таймера | PSC | Возможные значения: целое число от "0" до "65535" | 0 | Целое |
| Период таймера [0..65535] | PERIOD | Возможные значения: целое число от "0" до "65535" |
40000 | Целое |
| Направление счета таймера | DIR | Возможные значения: "TIMER_COUNTER_UP", "TIMER_COUNTER_DOWN" | TIMER_COUNTER_UP | Перечисление |
| Режим счета таймера (aligned mode) | CAM | Возможные значения: "TIMER_COUNTER_EDGE","TIMER_COUNTER_CENTER_DOWN","TIMER_COUNTER_CENTER_UP", "TIMER_COUNTER_CENTER_BOTH" | TIMER_COUNTER_EDGE | Перечисление |
| Режим работы ШИМ | PWM_MODE | Возможные значения: "PWM0", "PWM1" | PWM0 | Перечисление |
| Делитель частоты генерирования события обновления таймера (timer update event) [0..255] | TIM_UP_CNT | Возможные значения: целое число от "0" до "255" | 1 | Целое |
| Настройка канала таймера TIM_CHx, где x = 0..3 | Настройка каналов таймера TIM_CH0 … TIM_CH3 | |||
| Режим работы канала x таймера | CHx | Возможные значения: "DISABLE_OUTPUT", "OUTPUT_PWM" | OUTPUT_PWM | Перечисление |
| Включить прямой вывод ШИМ | CH_CCx | Возможные значения: "TIMER_CCX_DISABLE", "TIMER_CCX_ENABLE" | TIMER_CCX_ENABLE | Перечисление |
| Включить инверсный вывод ШИМ | CH_CCxN | Возможные значения: "TIMER_CCXN_DISABLE", "TIMER_CCXN_ENABLE" | TIMER_CCXN_ENABLE | Перечисление |
| Полярность прямого вывода ШИМ | CH_OCxP | Возможные значения: "TIMER_OC_POLARITY_HIGH", "TIMER_OC_POLARITY_LOW" | TIMER_OC_POLARITY_HIGH | Перечисление |
| Полярность инверсного вывода ШИМ | CH_OCxNP | Возможные значения: "TIMER_OCN_POLARITY_HIGH", "TIMER_OCN_POLARITY_LOW" | TIMER_OCN_POLARITY_HIGH | Перечисление |
| Состояние бездействия прямого вывода ШИМ | CH_ISOx | Возможные значения: "TIMER_OC_IDLE_STATE_LOW", "TIMER_OC_IDLE_STATE_HIGH" | TIMER_OC_IDLE_STATE_LOW | Перечисление |
| Состояние бездействия инверсного вывода ШИМ | CH_ISOxN | Возможные значения: "TIMER_OCN_IDLE_STATE_LOW", "TIMER_OCN_IDLE_STATE_HIGH" | TIMER_OCN_IDLE_STATE_LOW | Перечисление |
| Исходное значение регистра сравнения таймера (CHxVAL) | CHxVAL | Возможные значения: целое число от "0" до "65535" | 0 | Целое |
| Настройка регистра защиты | Настройка регистра защиты | |||
| Включить выходы таймера | POEN | Возможны значения: "DISABLE", "ENABLE" | DISABLE | Перечисление |
| Использовать run off state (если BRK, то выходы переходя в неактивное состояние) | ROS | Возможны значения: "TIMER_ROS_STATE_ENABLE", "TIMER_ROS_STATE_DISABLE" | TIMER_ROS_STATE_DISABLE | Перечисление |
| Использовать idle off state (если BRK, то выходы переходят в idle state через время deadtime) | IOS | Возможны значения: "TIMER_IOS_STATE_ENABLE", "TIMER_IOS_STATE_DISABLE" | TIMER_IOS_STATE_DISABLE | Перечисление |
| Использовать вход запрета break | BRKEN | Возможны значения: "TIMER_BREAK_DISABLE", "TIMER_BREAK_ENABLE" | TIMER_BREAK_DISABLE | Перечисление |
| Полярность запрещающего сигнала break | BRKP | Возможны значения: "TIMER_BREAK_POLARITY_LOW", "TIMER_BREAK_POLARITY_HIGH" | TIMER_BREAK_POLARITY_HIGH | Перечисление |
| Настройка величины мертвого времени [0..255] | DEADTIME | Возможны значения: целое число от "0" до "255" | 40 | Целое |
| Восстанавливать состояния выходов таймера после снятия сигнала BREAK | OAEN | Возможны значения: "TIMER_OUTAUTO_ENABLE", "TIMER_OUTAUTO_DISABLE" | TIMER_OUTAUTO_DISABLE | Перечисление |
| Защита регистров настройки выхода таймера от случайной записи | PROT | Возможны значения: "TIMER_CCHP_PROT_OFF", "TIMER_CCHP_PROT_0", "TIMER_CCHP_PROT_1", "TIMER_CCHP_PROT_2" | TIMER_CCHP_PROT_OFF | Перечисление |
| IRQ1 | Настройка IRQ1 | |||
| Включить прерывание по обновлению таймера | IRQ_INT | Возможные значения: "DISABLE", "TIMER_INT_UP", "TIMER_INT_CH0", "TIMER_INT_CH1", "TIMER_INT_CH2", "TIMER_INT_CH3" | TIMER_INT_UP | Перечисление |
| Приоритет прерывания | IRQ_PRI_PRE1 | Возможные значения: целое число от "0" до "4", высший приоритет "0", низший - "4" | 3 | Перечисление |
| Субприоритет прерывания | IRQ_PRI_SUB1 | Возможные значения: целое число от "0" до "4", высший приоритет "0", низший - "4" | 3 | Перечисление |
| Использовать таймер как источник тактирования программного счетчика main | DelayTIM | Возможные значения: "Да", "Нет" | Нет | Двоичное |
| Вызов расчетного алгоритма | NameAlg1 | Строка с именем расчетного алгоритма (также указывается в свойствах проекта в разделе генерация кода) | main | Строка |
| IRQ2 | Настройка IRQ2 | |||
| Включить прерывание по событию на входе BREAK | IRQ_INT_BRK | Возможные значения: "Да", "Нет" | Нет | Двоичное |
| Приоритет прерывания | IRQ_PRI_PRE2 | Возможные значения: целое число от "0" до "4", высший приоритет "0", низший - "4" | 3 | Перечисление |
| Субприоритет прерывания | IRQ_PRI_SUB2 | Возможные значения: целое число от "0" до "4", высший приоритет "0", низший - "4" | 3 | Перечисление |
| Вызов расчетного алгоритма | NameAlg2 | Строка с именем расчетного алгоритма (также указывается в свойствах проекта в разделе генерация кода) | my_diagram | Строка |
| DMA | Настройка DMA | |||
| Включить DMA | DMA_ON | Возможные значения: "Да", "Нет" | Нет | Двоичное |
| Выбрать источник запроса DMA | DMA_MODE | Возможные значения: "TIMER_DMA_UPD", "TIMER_DMA_CH0D", "TIMER_DMA_CH1D", "TIMER_DMA_CH2D", "TIMER_DMA_CH3D" | TIMER_DMA_UPD | Перечисление |
| TRGO | Настройка TRGO | |||
| Включить внутренний выход таймера | TRGO_ON | Возможные значения: "Да", "Нет" | Нет | Двоичное |
| Выбрать триггер | TRGO_MODE | Возможные значения: "TIMER_TRI_OUT_SRC_UPDATE", "TIMER_TRI_OUT_SRC_CH0", "TIMER_TRI_OUT_SRC_O0CPRE", "TIMER_TRI_OUT_SRC_O1CPRE", "TIMER_TRI_OUT_SRC_O2CPRE", "TIMER_TRI_OUT_SRC_O3CPRE" | TIMER_TRI_OUT_SRC_UPDATE | Перечисление |
Параметры
Блок не имеет параметров.

