ELIOT1 HAL
Загрузка...
Поиск...
Не найдено
hal_pwm_newgen.h
1
21#ifndef HAL_PWM_H
22#define HAL_PWM_H
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28#include "hal_common.h"
29
30#define PWM_CHANNEL_COUNT 4
31#define PWM_UNITS { (PWM_Type *)0x40111000, (PWM_Type *)0x40111100, (PWM_Type *)0x40111200, (PWM_Type *)0x40111300 }
32
36#define PWM_FREQ_HZ_TO_PERIOD_US(x) (1000000 / (x))
40#define PWM_PERIOD_MS(x) ((x) * 1000UL)
44#define PWM_PERIOD_S(x) ((x) * 1000000UL)
45
49enum {
50 PWM_OutA = 0x0UL,
51 PWM_OutB = 0x1UL,
52};
53
63
75
88
102
124
128typedef struct _pwm_chopper {
129 bool chopper_en;
130 enum pwm_chopper_duty chopper_duty;
131 enum pwm_chopper_freq chopper_freq;
132 enum pwm_chopper_first_width chopper_first_width;
134
142
150
154typedef struct _pwm_dz_cfg {
155 bool dz_en;
156 enum pwm_dz_outx_inv inv;
158
168
169typedef struct _pwm_trip_unit_cfg {
170 bool trip_unit_en;
171 enum pwm_trip_unit_action action;
173
177typedef struct _pwm_handle {
178 uint32_t channel;
179 uint32_t out;
181 uint32_t ref_clk;
184 uint32_t period_us;
186 bool int_en;
189 void (*pwm_callback)(struct _pwm_handle *hpwm);
191 pwm_chopper_cfg_t chopper_cfg;
192 pwm_dz_cfg_t deadzone_cfg;
193 pwm_trip_unit_cfg_t trip_unit_cfg;
195
202
209void PWM_Enable(pwm_handle_t *hpwm, bool enable);
210
217
218#ifdef __cplusplus
219}
220#endif
221
222#endif /* HAL_PWM_H */
223
pwm_trip_unit_action
Реакции на событие блока trip unit.
Definition hal_pwm.h:315
struct _pwm_dz_cfg pwm_dz_cfg_t
Конфигурация мертвой зоны ШИМ
pwm_eventprd
Выбор периода прерываний PWM_INT.
Definition hal_pwm.h:337
struct _pwm_handle pwm_handle_t
Контекст драйвера ШИМ
pwm_chopper_duty
Скважность дробящего сигнала
Definition hal_pwm.h:240
void PWM_Enable(pwm_handle_t *hpwm, bool enable)
Включение вывода канала ШИМ
pwm_dz_mode
Выбор режима работы блока запрещенной зоны при формирования OUTx.
Definition hal_pwm.h:230
struct _pwm_chopper pwm_chopper_cfg_t
Конфигурация дробления сигнала ШИМ
void PWM_Init(pwm_handle_t *hpwm)
Инициализация канала ШИМ и выводов
void PWM_IntCallback(pwm_handle_t *hpwm)
Общая функция обратного вызова при возникновении прерываний
pwm_chopper_freq
Частота дробящего сигнала
Definition hal_pwm.h:255
pwm_dz_outx_inv
Полярность OUTx после генерации запрещенной зоны
Definition hal_pwm.h:220
pwm_int_source
Источник прерывания
Definition hal_pwm.h:349
pwm_chopper_first_width
Ширина первого импульса
Definition hal_pwm.h:271
@ PWM_TripUnitActionZero
Definition hal_pwm_newgen.h:165
@ PWM_TripUnitActionNo
Definition hal_pwm_newgen.h:166
@ PWM_TripUnitActionOne
Definition hal_pwm_newgen.h:164
@ PWM_TripUnitActionHigh
Definition hal_pwm_newgen.h:163
@ PWM_EventPrdOne
Definition hal_pwm_newgen.h:59
@ PWM_EventPrdThree
Definition hal_pwm_newgen.h:61
@ PWM_EventPrdNo
Definition hal_pwm_newgen.h:58
@ PWM_EventPrdTwo
Definition hal_pwm_newgen.h:60
@ PWM_ChopperDuty_1_8
Definition hal_pwm_newgen.h:80
@ PWM_ChopperDuty_6_8
Definition hal_pwm_newgen.h:85
@ PWM_ChopperDuty_7_8
Definition hal_pwm_newgen.h:86
@ PWM_ChopperDuty_5_8
Definition hal_pwm_newgen.h:84
@ PWM_ChopperDuty_4_8
Definition hal_pwm_newgen.h:83
@ PWM_ChopperDuty_2_8
Definition hal_pwm_newgen.h:81
@ PWM_ChopperDuty_3_8
Definition hal_pwm_newgen.h:82
@ PWM_DzModeOff
Definition hal_pwm_newgen.h:147
@ PWM_DzModeOn
Definition hal_pwm_newgen.h:148
@ PWM_ChopperFreqClk_16
Definition hal_pwm_newgen.h:94
@ PWM_ChopperFreqClk_8
Definition hal_pwm_newgen.h:93
@ PWM_ChopperFreqClk_24
Definition hal_pwm_newgen.h:95
@ PWM_ChopperFreqClk_32
Definition hal_pwm_newgen.h:96
@ PWM_ChopperFreqClk_64
Definition hal_pwm_newgen.h:100
@ PWM_ChopperFreqClk_48
Definition hal_pwm_newgen.h:98
@ PWM_ChopperFreqClk_56
Definition hal_pwm_newgen.h:99
@ PWM_ChopperFreqClk_40
Definition hal_pwm_newgen.h:97
@ PWM_OutB
Definition hal_pwm_newgen.h:51
@ PWM_OutA
Definition hal_pwm_newgen.h:50
@ PWM_DzSignalOutxInvOn
Definition hal_pwm_newgen.h:140
@ PWM_DzSignalOutxInvOff
Definition hal_pwm_newgen.h:139
@ PWM_IntSourceCtrcntEquCtrprd
Definition hal_pwm_newgen.h:69
@ PWM_IntSourceCtrcntEquCmpBInc
Definition hal_pwm_newgen.h:72
@ PWM_IntSourceCtrcntEquCmpADec
Definition hal_pwm_newgen.h:71
@ PWM_IntSourceCtrcntEquZero
Definition hal_pwm_newgen.h:68
@ PWM_IntSourceCtrcntEquCmpBDec
Definition hal_pwm_newgen.h:73
@ PWM_IntSourceCtrcntEquCmpAInc
Definition hal_pwm_newgen.h:70
@ PWM_ChopperFirstWidth_8_8
Definition hal_pwm_newgen.h:115
@ PWM_ChopperFirstWidth_13_8
Definition hal_pwm_newgen.h:120
@ PWM_ChopperFirstWidth_9_8
Definition hal_pwm_newgen.h:116
@ PWM_ChopperFirstWidth_6_8
Definition hal_pwm_newgen.h:113
@ PWM_ChopperFirstWidth_1_8
Definition hal_pwm_newgen.h:108
@ PWM_ChopperFirstWidth_3_8
Definition hal_pwm_newgen.h:110
@ PWM_ChopperFirstWidth_15_8
Definition hal_pwm_newgen.h:122
@ PWM_ChopperFirstWidth_7_8
Definition hal_pwm_newgen.h:114
@ PWM_ChopperFirstWidth_5_8
Definition hal_pwm_newgen.h:112
@ PWM_ChopperFirstWidth_2_8
Definition hal_pwm_newgen.h:109
@ PWM_ChopperFirstWidth_12_8
Definition hal_pwm_newgen.h:119
@ PWM_ChopperFirstWidth_11_8
Definition hal_pwm_newgen.h:118
@ PWM_ChopperFirstWidth_10_8
Definition hal_pwm_newgen.h:117
@ PWM_ChopperFirstWidth_0_8
Definition hal_pwm_newgen.h:107
@ PWM_ChopperFirstWidth_14_8
Definition hal_pwm_newgen.h:121
@ PWM_ChopperFirstWidth_4_8
Definition hal_pwm_newgen.h:111
Конфигурация дробления сигнала ШИМ
Definition hal_pwm_newgen.h:128
Конфигурация мертвой зоны ШИМ
Definition hal_pwm_newgen.h:154
Контекст драйвера ШИМ
Definition hal_pwm_newgen.h:177
uint32_t channel
Definition hal_pwm_newgen.h:178
bool int_en
Definition hal_pwm_newgen.h:186
void(* pwm_callback)(struct _pwm_handle *hpwm)
Definition hal_pwm_newgen.h:189
enum pwm_int_source int_source
Definition hal_pwm_newgen.h:187
enum pwm_eventprd int_freq
Definition hal_pwm_newgen.h:188
uint32_t out
Definition hal_pwm_newgen.h:179
uint32_t period_us
Definition hal_pwm_newgen.h:184
uint32_t ref_clk
Definition hal_pwm_newgen.h:181
float duty_cycle
Definition hal_pwm_newgen.h:183
Definition hal_pwm_newgen.h:169