ELIOT1 HAL
Загрузка...
Поиск...
Не найдено
Драйвер модуля PWM

Драйвер широтно-импульсного модулятора Подробнее...

Файлы

файл  hal_pwm.h
 Интерфейс драйвера модуля широтно-импульсного модулятора
 

Структуры данных

struct  pwm_channel_config
 Конфигурация канала широтно-импульсного модулятора Подробнее...
 
struct  _pwm_chopper
 Конфигурация дробления сигнала ШИМ Подробнее...
 
struct  _pwm_dz_cfg
 Конфигурация мертвой зоны ШИМ Подробнее...
 
struct  _pwm_trip_unit_cfg
 
struct  _pwm_handle
 Контекст драйвера ШИМ Подробнее...
 

Макросы

#define PWM_COUNT   (3)
 
#define PWM_CHANNEL_COUNT   4
 
#define PWM_UNITS   { (PWM_Type *)0x40111000, (PWM_Type *)0x40111100, (PWM_Type *)0x40111200, (PWM_Type *)0x40111300 }
 
#define PWM_FREQ_HZ_TO_PERIOD_US(x)   (1000000 / (x))
 Макрос для преобразования частоты в период
 
#define PWM_PERIOD_MS(x)   ((x) * 1000UL)
 Макрос для преобразования времени из милисекунд в микросекунды
 
#define PWM_PERIOD_S(x)   ((x) * 1000000UL)
 Макрос для преобразования времени из секунд в микросекунды
 

Определения типов

typedef struct _pwm_chopper pwm_chopper_cfg_t
 Конфигурация дробления сигнала ШИМ
 
typedef struct _pwm_dz_cfg pwm_dz_cfg_t
 Конфигурация мертвой зоны ШИМ
 
typedef struct _pwm_trip_unit_cfg pwm_trip_unit_cfg_t
 
typedef struct _pwm_handle pwm_handle_t
 Контекст драйвера ШИМ
 

Перечисления

enum  pwm_status
 Статусы драйвера широтно-импульсного модулятора Подробнее...
 
enum  pwm_prescaler_mode
 Управление режимом работы предделителя канала Подробнее...
 
enum  pwm_prescaler_cmd
 Управление состоянием предделителя канала Подробнее...
 
enum  pwm_run_command
 Управление пуском/остановкой канала Подробнее...
 
enum  pwm_prescaler_divmux
 Управление мультиплексором делителя частоты (деление частоты после делителя) Подробнее...
 
enum  pwm_prescaler_syncrst
 Разрешения сброса предделителя при возникновения событий SYNCI или SWFSYNC. Подробнее...
 
enum  pwm_dirsync
 Направление счета после синхронизации Подробнее...
 
enum  pwm_syncosel
 Выбор источника выходного сигнала SYNCO. Подробнее...
 
enum  pwm_loadprd
 Управление моментом переписи данных из теневого регистра периода в активный Подробнее...
 
enum  pwm_syncphsen
 Сигнал разрешения загрузки счетчика из регистра фазы Подробнее...
 
enum  pwm_cntmode
 Режим работы счетчика CRTCNT. Подробнее...
 
enum  pwm_scmpxmode
 Режим работы регистра CMPx. Подробнее...
 
enum  pwm_ldxmode
 Выбор режима загрузки данных из теневого регистра в активный CMPx. Подробнее...
 
enum  pwm_outx_cmd
 Управление выходом OUTx. Подробнее...
 
enum  pwm_ldcswrf
 Механизм загрузки активного регистра из теневого регистра для регистра программного управления выходами Подробнее...
 
enum  pwm_dz_signal
 Источник сигнала для генерации запрещенной зоны Подробнее...
 
enum  pwm_dz_outx_inv
 Полярность OUTx после генерации запрещенной зоны Подробнее...
 
enum  pwm_dz_mode
 Выбор режима работы блока запрещенной зоны при формирования OUTx. Подробнее...
 
enum  pwm_chopper_duty
 Скважность дробящего сигнала Подробнее...
 
enum  pwm_chopper_freq
 Частота дробящего сигнала Подробнее...
 
enum  pwm_chopper_first_width
 Ширина первого импульса Подробнее...
 
enum  pwm_chopper_work
 Работа блока Chopper. Подробнее...
 
enum  pwm_trip_unit_signal
 Работа блока trip unit. Подробнее...
 
enum  pwm_trip_unit_action
 Реакции на событие блока trip unit. Подробнее...
 
enum  pwm_int_en
 Разрешение прерывания блока Подробнее...
 
enum  pwm_eventprd
 Выбор периода прерываний PWM_INT. Подробнее...
 
enum  pwm_int_source
 Источник прерывания Подробнее...
 
enum  
 Выходы каналов ШИМ Подробнее...
 
enum  pwm_eventprd
 Частота возникновения прерываний ШИМ Подробнее...
 
enum  pwm_int_source
 Источники прерывания ШИМ Подробнее...
 
enum  pwm_chopper_duty
 Скважность дробящего сигнала Подробнее...
 
enum  pwm_chopper_freq
 Частота дробящего сигнала Подробнее...
 
enum  pwm_chopper_first_width
 Ширина первого импульса Подробнее...
 
enum  pwm_dz_outx_inv
 Полярность OUTx после генерации запрещенной зоны Подробнее...
 
enum  pwm_dz_mode
 Выбор режима работы блока запрещенной зоны при формирования OUTx. Подробнее...
 
enum  pwm_trip_unit_action
 Реакции на событие блока trip unit. Подробнее...
 

Функции

void PWM_Init (pwm_handle_t *hpwm)
 Инициализация канала ШИМ и выводов
 
void PWM_Enable (pwm_handle_t *hpwm, bool enable)
 Включение вывода канала ШИМ
 
void PWM_IntCallback (pwm_handle_t *hpwm)
 Общая функция обратного вызова при возникновении прерываний
 

Интерфейс драйвера

enum pwm_status PWM_GetChannelDefaultConfig (struct pwm_channel_config *cfg)
 Инициализация структуры "по умолчанию" для канала блока ШИМ
 
enum pwm_status PWM_InitChannel (PWM_Type *base, struct pwm_channel_config cfg)
 Инициализация канала блока широтно-импульсного модулятора
 
enum pwm_status PWM_Deinit (PWM_Type *base)
 Деинициализация блока широтно-импульсного модулятора
 
enum pwm_status PWM_Enable (PWM_Type *base, uint32_t channel, enum pwm_run_command cmd)
 Запуск/останов канала блока широтно-импульсного модулятора
 
enum pwm_status PWM_CmdForAllChannels (PWM_Type *base, uint32_t channel_mask, enum pwm_run_command cmd0, enum pwm_run_command cmd1, enum pwm_run_command cmd2, enum pwm_run_command cmd3)
 Запуск/останов всех каналов блока широтно-импульсного модулятора
 
enum pwm_status PWM_ApplySoftOuts (PWM_Type *base, uint32_t channel, int8_t mask_outs)
 Программная не длительная установка значения выходов канала
 
enum pwm_status PWM_ApplyLongSoftOuts (PWM_Type *base, uint32_t channel, int8_t mask_outs, enum pwm_outx_cmd outa, enum pwm_outx_cmd outb)
 Программная длительная установка значения выходов канала
 
uint32_t PWM_GetCntStat (PWM_Type *base, uint32_t channel)
 Определяет работает ли счетчик в канале
 
enum pwm_status PWM_SetPeriod (PWM_Type *base, uint32_t channel, uint32_t period)
 Устанавливает значение периода
 

Подробное описание

Драйвер широтно-импульсного модулятора

Драйвер модуля широтно-импульсного модулятора управляет блоком генерации широтно-импульсного модулированного сигнала

Драйвер модуля широтно-импульсного модулятора управляет блоком генерации широтно-импульсного модулированного сигнала

Макросы

◆ PWM_COUNT

#define PWM_COUNT   (3)

Количество блоков широтно-импульсного модулятора

Перечисления

◆ anonymous enum

anonymous enum

Выходы каналов ШИМ

Элементы перечислений
PWM_OutA 

Канал А

PWM_OutB 

Канал B

◆ pwm_chopper_duty [1/2]

Скважность дробящего сигнала

Элементы перечислений
pwm_ChopperDuty_1_8 

1/8

pwm_ChopperDuty_2_8 

2/8

pwm_ChopperDuty_3_8 

3/8

pwm_ChopperDuty_4_8 

4/8

pwm_ChopperDuty_5_8 

5/8

pwm_ChopperDuty_6_8 

6/8

pwm_ChopperDuty_7_8 

7/8

◆ pwm_chopper_duty [2/2]

Скважность дробящего сигнала

Элементы перечислений
PWM_ChopperDuty_1_8 

1/8

PWM_ChopperDuty_2_8 

2/8

PWM_ChopperDuty_3_8 

3/8

PWM_ChopperDuty_4_8 

4/8

PWM_ChopperDuty_5_8 

5/8

PWM_ChopperDuty_6_8 

6/8

PWM_ChopperDuty_7_8 

7/8

◆ pwm_chopper_first_width [1/2]

Ширина первого импульса

Элементы перечислений
pwm_ChopperFirstWidth_0_8 

0xCLK/8

pwm_ChopperFirstWidth_1_8 

1xCLK/8

pwm_ChopperFirstWidth_2_8 

2xCLK/8

pwm_ChopperFirstWidth_3_8 

3xCLK/8

pwm_ChopperFirstWidth_4_8 

4xCLK/8

pwm_ChopperFirstWidth_5_8 

5xCLK/8

pwm_ChopperFirstWidth_6_8 

6xCLK/8

pwm_ChopperFirstWidth_7_8 

7xCLK/8

pwm_ChopperFirstWidth_8_8 

8xCLK/8

pwm_ChopperFirstWidth_9_8 

9xCLK/8

pwm_ChopperFirstWidth_10_8 

10xCLK/8

pwm_ChopperFirstWidth_11_8 

11xCLK/8

pwm_ChopperFirstWidth_12_8 

12xCLK/8

pwm_ChopperFirstWidth_13_8 

13xCLK/8

pwm_ChopperFirstWidth_14_8 

14xCLK/8

pwm_ChopperFirstWidth_15_8 

15xCLK/8

◆ pwm_chopper_first_width [2/2]

Ширина первого импульса

Элементы перечислений
PWM_ChopperFirstWidth_0_8 

0xCLK/8

PWM_ChopperFirstWidth_1_8 

1xCLK/8

PWM_ChopperFirstWidth_2_8 

2xCLK/8

PWM_ChopperFirstWidth_3_8 

3xCLK/8

PWM_ChopperFirstWidth_4_8 

4xCLK/8

PWM_ChopperFirstWidth_5_8 

5xCLK/8

PWM_ChopperFirstWidth_6_8 

6xCLK/8

PWM_ChopperFirstWidth_7_8 

7xCLK/8

PWM_ChopperFirstWidth_8_8 

8xCLK/8

PWM_ChopperFirstWidth_9_8 

9xCLK/8

PWM_ChopperFirstWidth_10_8 

10xCLK/8

PWM_ChopperFirstWidth_11_8 

11xCLK/8

PWM_ChopperFirstWidth_12_8 

12xCLK/8

PWM_ChopperFirstWidth_13_8 

13xCLK/8

PWM_ChopperFirstWidth_14_8 

14xCLK/8

PWM_ChopperFirstWidth_15_8 

15xCLK/8

◆ pwm_chopper_freq [1/2]

Частота дробящего сигнала

Элементы перечислений
pwm_ChopperFreqClk_8 

CLK/8

pwm_ChopperFreqClk_16 

CLK/16

pwm_ChopperFreqClk_24 

CLK/24

pwm_ChopperFreqClk_32 

CLK/32

pwm_ChopperFreqClk_40 

CLK/40

pwm_ChopperFreqClk_48 

CLK/48

pwm_ChopperFreqClk_56 

CLK/56

pwm_ChopperFreqClk_64 

CLK/64

◆ pwm_chopper_freq [2/2]

Частота дробящего сигнала

Элементы перечислений
PWM_ChopperFreqClk_8 

CLK/8

PWM_ChopperFreqClk_16 

CLK/16

PWM_ChopperFreqClk_24 

CLK/24

PWM_ChopperFreqClk_32 

CLK/32

PWM_ChopperFreqClk_40 

CLK/40

PWM_ChopperFreqClk_48 

CLK/48

PWM_ChopperFreqClk_56 

CLK/56

PWM_ChopperFreqClk_64 

CLK/64

◆ pwm_chopper_work

Работа блока Chopper.

Элементы перечислений
pwm_ChopperWorkOff 

Выключена функция дробления

pwm_ChopperWorkOn 

Включена функция дробления

◆ pwm_cntmode

Режим работы счетчика CRTCNT.

Элементы перечислений
pwm_CntModeUp 

Up-count режим

pwm_CntModeDown 

Down-count режим

pwm_CntModeUpDown 

Up-down-count режим

pwm_CntModeOff 

Счет не осуществляется

◆ pwm_dirsync

Направление счета после синхронизации

Заметки
Этот бит используется, только когда счетчик работает в up-down режиме.
Элементы перечислений
pwm_DirSyncDown 

После синхронизации счетчик декрементируется

pwm_DirSyncUp 

После синхронизации счетчик инкрементируется

◆ pwm_dz_mode [1/2]

Выбор режима работы блока запрещенной зоны при формирования OUTx.

Элементы перечислений
pwm_DzModeOff 

Генератор выключен

pwm_DzModeOn 

Генератор включен

◆ pwm_dz_mode [2/2]

Выбор режима работы блока запрещенной зоны при формирования OUTx.

Элементы перечислений
PWM_DzModeOff 

Генератор выключен

PWM_DzModeOn 

Генератор включен

◆ pwm_dz_outx_inv [1/2]

Полярность OUTx после генерации запрещенной зоны

Элементы перечислений
pwm_DzSignalOutxInvOff 

Нет инверсии

pwm_DzSignalOutxInvOn 

Есть инверсия

◆ pwm_dz_outx_inv [2/2]

Полярность OUTx после генерации запрещенной зоны

Элементы перечислений
PWM_DzSignalOutxInvOff 

Нет инверсии

PWM_DzSignalOutxInvOn 

Есть инверсия

◆ pwm_dz_signal

Источник сигнала для генерации запрещенной зоны

Элементы перечислений
pwm_DzSignalOutA 

Сигнал OUTA in

pwm_DzSignalOutB 

Сигнал OUTB in

◆ pwm_eventprd [1/2]

Выбор периода прерываний PWM_INT.

Элементы перечислений
pwm_EventPrdNo 

Нет генерации прерывания

pwm_EventPrdOne 

Генерация прерывания каждый раз при возникновении события

pwm_EventPrdTwo 

Генерация прерывания каждый второй раз при возникновении события

pwm_EventPrdThree 

Генерация прерывания каждый третий раз при возникновении события

◆ pwm_eventprd [2/2]

Частота возникновения прерываний ШИМ

Элементы перечислений
PWM_EventPrdNo 

Нет генерации прерывания

PWM_EventPrdOne 

Генерация прерывания каждый раз при возникновении события

PWM_EventPrdTwo 

Генерация прерывания каждый второй раз при возникновении события

PWM_EventPrdThree 

Генерация прерывания каждый третий раз при возникновении события

◆ pwm_int_en

enum pwm_int_en

Разрешение прерывания блока

Элементы перечислений
pwm_IntEnNo 

Прерывание запрещено

pwm_IntEnYes 

Прерывание разрешено

◆ pwm_int_source [1/2]

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

Элементы перечислений
pwm_IntSourceNo 

Резерв

pwm_IntSourceCtrcntEquZero 

Признак равенства счетчика нулю CTRCNT=0

pwm_IntSourceCtrcntEquCtrprd 

Признак равенства счетчика периоду счета CTRCNT=CTRPRD

pwm_IntSourceCtrcntEquCmpAInc 

Признак равенства счетчика регистру сравнения CMPA во время инкремента

pwm_IntSourceCtrcntEquCmpADec 

Признак равенства счетчика регистру сравнения CMPA во время декремента

pwm_IntSourceCtrcntEquCmpBInc 

Признак равенства счетчика регистру сравнения CMPB во время инкремента

pwm_IntSourceCtrcntEquCmpBDec 

Признак равенства счетчика регистру сравнения CMPB во время декремента

◆ pwm_int_source [2/2]

Источники прерывания ШИМ

Элементы перечислений
PWM_IntSourceCtrcntEquZero 

Признак равенства счетчика ШИМ нулю

PWM_IntSourceCtrcntEquCtrprd 

Признак равенства счетчика ШИМ периоду счета

PWM_IntSourceCtrcntEquCmpAInc 

Признак равенства счетчика ШИМ регистру сравнения выхода A во время инкремента

PWM_IntSourceCtrcntEquCmpADec 

Признак равенства счетчика ШИМ регистру сравнения выхода A во время декремента

PWM_IntSourceCtrcntEquCmpBInc 

Признак равенства счетчика ШИМ регистру сравнения выхода B во время инкремента

PWM_IntSourceCtrcntEquCmpBDec 

Признак равенства счетчика ШИМ регистру сравнения выхода B во время декремента

◆ pwm_ldcswrf

Механизм загрузки активного регистра из теневого регистра для регистра программного управления выходами

Элементы перечислений
pwm_LdcswrfCtrcntZero 

Загрузка при CTRCNT=0

pwm_LdcswrfCtrcntEquCtrprd 

Загрузка при CTRCNT=CTRPRD

pwm_LdcswrfCtrcntZeroEquCtrprd 

Загрузка при CTRCNT=0 или CTRCNT=CTRPRD

pwm_LdcswrfDirect 

Загружать напрямую при обращении CPU без использования теневого регистра

◆ pwm_ldxmode

Выбор режима загрузки данных из теневого регистра в активный CMPx.

Элементы перечислений
pwm_LdxModeCtrcntZero 

Загрузка при CTRCNT=0

pwm_LdxModeCtrcntEquCtrprd 

Загрузка при CTRCNT=CTRPRD

pwm_LdxModeCtrcntZeroOrEquCtrprd 

Загрузка при CTRCNT=0 или CTRCNT=CTRPRD

pwm_LdxModeNoLoad 

Загрузка не осуществляется

◆ pwm_loadprd

Управление моментом переписи данных из теневого регистра периода в активный

Элементы перечислений
pwm_LoadPrdRegister 

Регистр периода (CTRPRD) загружается из теневого регистра, когда счетчик (CTRCNT) равен нулю (запись или чтение CTRPRD осуществляется через теневой регистр)

pwm_LoadPrdDirect 

CTRPRD загружается напрямую без использования теневого регистра (запись или чтение CTRPRD осуществляется напрямую)

◆ pwm_outx_cmd

Управление выходом OUTx.

Элементы перечислений
pwm_OutxCmdNo 

Не выполнять действий

pwm_OutxCmdClear 

Сбросить OUTx в 0

pwm_OutxCmdSet 

Установить OUTx в 1

pwm_OutxCmdToggle 

Инвертировать OUTx

◆ pwm_prescaler_cmd

Управление состоянием предделителя канала

Элементы перечислений
pwm_PrescCmdReset 

Счетчик предделителя сбрасывается в «0»

pwm_PrescCmdSave 

Счетчик предделителя сохраняет состояние на момент останова

◆ pwm_prescaler_divmux

Управление мультиплексором делителя частоты (деление частоты после делителя)

Элементы перечислений
pwm_PrescalerDivMux1 

Частота от предделителя делится на 1

pwm_PrescalerDivMux2 

Частота от предделителя делится на 2

pwm_PrescalerDivMux4 

Частота от предделителя делится на 4

pwm_PrescalerDivMux8 

Частота от предделителя делится на 8

pwm_PrescalerDivMux16 

Частота от предделителя делится на 16

pwm_PrescalerDivMuxPWMClk 

Используется внешняя частота PWM_CLK

◆ pwm_prescaler_mode

Управление режимом работы предделителя канала

Элементы перечислений
pwm_PrescModeTimerIsRun 

Предделитель формирует частоту только при включенном таймере

pwm_PrescModeAlways 

Предделитель формирует частоту не зависимо от включенности таймера

◆ pwm_prescaler_syncrst

Разрешения сброса предделителя при возникновения событий SYNCI или SWFSYNC.

Элементы перечислений
pwm_PrescalerSyncRstDis 

Сброс запрещен

pwm_PrescalerSyncRstEn 

Сброс разрешен

◆ pwm_run_command

Управление пуском/остановкой канала

Элементы перечислений
pwm_RunCmdStop 

Остановка после следующего переключения счетчика CTRCNT

pwm_RunCmdStopEvent 

Остановка при совершении следующих событий: up-count режим: остановка при CTRCNT==CTRPRD down-count режим: остановка при CTRCNT==0 up-down-count режим: остановка при CTRCNT==0

pwm_RunCmdRun 

Запуск

◆ pwm_scmpxmode

Режим работы регистра CMPx.

Элементы перечислений
pwm_SCmpxModeReg 

Работа с теневым регистром, все запросы CPU проходят через теневой регистр

pwm_SCmpxModeDirect 

Прямой режим, используется только активный регистр CMPx

◆ pwm_status

enum pwm_status

Статусы драйвера широтно-импульсного модулятора

Элементы перечислений
PWM_Status_Ok 

Нет ошибок

PWM_Status_InvalidArgument 

Недопустимый аргумент

PWM_Status_BadConfigure 

Недопустимая конфигурация

◆ pwm_syncosel

Выбор источника выходного сигнала SYNCO.

Элементы перечислений
pwm_SyncoSelSynci 

SYNCI

pwm_SyncoSelCtrcntZero 

Счетчик равен нулю (CTRCNT==0)

pwm_SyncoSelCtrcntEquCmpb 

Счетчик равен значению регистра сравнения B (CTRCNT==CMPB)

pwm_SyncoSelOff 

SYNCO отключен

◆ pwm_syncphsen

Сигнал разрешения загрузки счетчика из регистра фазы

Элементы перечислений
pwm_SyncPhsEnDis 

Загрузка CTRCNT из регистра фазы CTRPHS запрещена

pwm_SyncPhsEnEn 

Загрузка CTRCNT из регистра фазы CTRPHS во время синхронизации разрешена

◆ pwm_trip_unit_action [1/2]

Реакции на событие блока trip unit.

Элементы перечислений
pwm_TripUnitActionHigh 

OUTx переводится в высокоомное состояние

pwm_TripUnitActionOne 

OUTx подтягивается к 1

pwm_TripUnitActionZero 

OUTx подтягивается к 0

pwm_TripUnitActionNo 

Действий не производится

◆ pwm_trip_unit_action [2/2]

Реакции на событие блока trip unit.

Элементы перечислений
PWM_TripUnitActionHigh 

OUTx переводится в высокоомное состояние

PWM_TripUnitActionOne 

OUTx подтягивается к 1

PWM_TripUnitActionZero 

OUTx подтягивается к 0

PWM_TripUnitActionNo 

Действий не производится

◆ pwm_trip_unit_signal

Работа блока trip unit.

Элементы перечислений
pwm_TripUnitSignalNotUsed 

Вход не используется

pwm_TripUnitSignalUsed 

Вход используется

Функции

◆ PWM_ApplyLongSoftOuts()

enum pwm_status PWM_ApplyLongSoftOuts ( PWM_Type * base,
uint32_t channel,
int8_t mask_outs,
enum pwm_outx_cmd outa,
enum pwm_outx_cmd outb )

Программная длительная установка значения выходов канала

Аргументы
baseБлок широтно-импульсного модулятора
channelКанал
mask_outsМаски выводов: бит 0 - OutA; 1 - OutB
outaЗначение вывода OutA
outbЗначение вывода OutB
Заметки
Значения pwm_OutxCmdToggle для outa и outb имеют эффект как pwm_OutxCmdNo.
Возвращаемые значения
PWM_Status_Ok
PWM_Status_InvalidArgument
PWM_Status_BadConfigure

◆ PWM_ApplySoftOuts()

enum pwm_status PWM_ApplySoftOuts ( PWM_Type * base,
uint32_t channel,
int8_t mask_outs )

Программная не длительная установка значения выходов канала

Заметки
В отличие от длительной приводит к переключению значения выходов которое будет изменено аппаратным событием. Значения устанавливаются ранее предопределённые в конфигурации.
Аргументы
baseБлок широтно-импульсного модулятора
channelКанал
mask_outsМаски выводов: бит 0 - OutA; 1 - OutB
Возвращаемые значения
PWM_Status_Ok
PWM_Status_InvalidArgument
PWM_Status_BadConfigure

◆ PWM_CmdForAllChannels()

enum pwm_status PWM_CmdForAllChannels ( PWM_Type * base,
uint32_t channel_mask,
enum pwm_run_command cmd0,
enum pwm_run_command cmd1,
enum pwm_run_command cmd2,
enum pwm_run_command cmd3 )

Запуск/останов всех каналов блока широтно-импульсного модулятора

Аргументы
baseБлок широтно-импульсного модулятора
channel_maskКаналы - 1 бит означает управление каналом
cmd0Команда запуска 0 канала широтно-импульсного модулятора
cmd1Команда запуска 1 канала широтно-импульсного модулятора
cmd2Команда запуска 2 канала широтно-импульсного модулятора
cmd3Команда запуска 3 канала широтно-импульсного модулятора
Возвращаемые значения
PWM_Status_Ok
PWM_Status_InvalidArgument

◆ PWM_Deinit()

enum pwm_status PWM_Deinit ( PWM_Type * base)

Деинициализация блока широтно-импульсного модулятора

Аргументы
baseБлок широтно-импульсного модулятора
Возвращаемые значения
PWM_Status_Ok
PWM_Status_InvalidArgument

◆ PWM_Enable() [1/2]

void PWM_Enable ( pwm_handle_t * hpwm,
bool enable )

Включение вывода канала ШИМ

Аргументы
hpwmКонтекст драйвера ШИМ
bool1 - включение, 0 - выключение

◆ PWM_Enable() [2/2]

enum pwm_status PWM_Enable ( PWM_Type * base,
uint32_t channel,
enum pwm_run_command cmd )

Запуск/останов канала блока широтно-импульсного модулятора

Аргументы
baseБлок широтно-импульсного модулятора
channelКанал
cmdКоманда запуска для канала широтно-импульсного модулятора
Возвращаемые значения
PWM_Status_Ok
PWM_Status_InvalidArgument

◆ PWM_GetChannelDefaultConfig()

enum pwm_status PWM_GetChannelDefaultConfig ( struct pwm_channel_config * cfg)

Инициализация структуры "по умолчанию" для канала блока ШИМ

Аргументы
cfgКонфигурация
Возвращаемые значения
PWM_Status_Ok
PWM_Status_InvalidArgument

◆ PWM_GetCntStat()

uint32_t PWM_GetCntStat ( PWM_Type * base,
uint32_t channel )

Определяет работает ли счетчик в канале

Аргументы
baseБлок широтно-импульсного модулятора
channelКанал
Возвращаемые значения
1- Счетчик работает
0- Счетчик не работает

◆ PWM_Init()

void PWM_Init ( pwm_handle_t * hpwm)

Инициализация канала ШИМ и выводов

Аргументы
hpwmКонтекст драйвера ШИМ

◆ PWM_InitChannel()

enum pwm_status PWM_InitChannel ( PWM_Type * base,
struct pwm_channel_config cfg )

Инициализация канала блока широтно-импульсного модулятора

Аргументы
baseБлок широтно-импульсного модулятора
cfgКонфигурация
Возвращаемые значения
PWM_Status_Ok
PWM_Status_InvalidArgument

◆ PWM_IntCallback()

void PWM_IntCallback ( pwm_handle_t * hpwm)

Общая функция обратного вызова при возникновении прерываний

Аргументы
hpwmКонтекст драйвера ШИМ

◆ PWM_SetPeriod()

enum pwm_status PWM_SetPeriod ( PWM_Type * base,
uint32_t channel,
uint32_t period )

Устанавливает значение периода

Аргументы
baseБлок широтно-импульсного модулятора
channelКанал
periodПериод в клоках частоты тактирования
Возвращаемые значения
PWM_Status_Ok
PWM_Status_InvalidArgument
PWM_Status_BadConfigure