Обновление
This commit is contained in:
parent
89e6ae702c
commit
7145e0c1dc
|
|
@ -22,10 +22,11 @@ typedef struct {
|
|||
|
||||
void PWM_Initial(
|
||||
tPwmFlagchip *env,
|
||||
bool isDeInit,
|
||||
uint32_t PeriodTime,
|
||||
uint32_t ActiveTime,
|
||||
uint8_t TPU_PWM_CHANNEL,
|
||||
uint8 TPU0_CH_PRIORITY,
|
||||
uint8 TPU_PRIORITY,
|
||||
TPU_EventCallbackType Bsp_Tpu_PwmCallback,
|
||||
TPU_TCR1OverflowCallbackType Bsp_Tpu_OverflowCallBack);
|
||||
|
||||
|
|
|
|||
|
|
@ -12,10 +12,11 @@ void Get_Set_Tpu_PwmCallback(tPwmFlagchip *env) {
|
|||
|
||||
void PWM_Initial(
|
||||
tPwmFlagchip *env,
|
||||
bool isDeInit,
|
||||
uint32_t PeriodTime,
|
||||
uint32_t ActiveTime,
|
||||
uint8_t TPU_PWM_CHANNEL,
|
||||
uint8 TPU0_CH_PRIORITY,
|
||||
uint8 TPU_PRIORITY,
|
||||
TPU_EventCallbackType Bsp_Tpu_PwmCallback,
|
||||
TPU_TCR1OverflowCallbackType Bsp_Tpu_OverflowCallBack) {
|
||||
|
||||
|
|
@ -41,23 +42,25 @@ void PWM_Initial(
|
|||
env->TPU_PWM_CHANNEL = TPU_PWM_CHANNEL;
|
||||
|
||||
|
||||
if (isDeInit) {
|
||||
TPU_DeInit();
|
||||
}
|
||||
TPU_Init();
|
||||
TPU_PwmModeInit(TPU_PWM_CHANNEL, &env->etpu_pwmconfig_tbl);
|
||||
TPU_InitChannelInterrupt(TPU_PWM_CHANNEL, &env->etpu_Int_config_tbl);
|
||||
|
||||
if (TPU_PWM_CHANNEL <= 7) {
|
||||
NVIC_SetPriority(TPU0_CH0_7_IRQn, TPU_PRIORITY);
|
||||
NVIC_EnableIRQ(TPU0_CH0_7_IRQn);
|
||||
NVIC_SetPriority(TPU0_CH0_7_IRQn, TPU0_CH_PRIORITY);
|
||||
} else if (TPU_PWM_CHANNEL <= 15) {
|
||||
NVIC_SetPriority(TPU0_CH8_15_IRQn, TPU_PRIORITY);
|
||||
NVIC_EnableIRQ(TPU0_CH8_15_IRQn);
|
||||
NVIC_SetPriority(TPU0_CH8_15_IRQn, TPU0_CH_PRIORITY);
|
||||
} else if (TPU_PWM_CHANNEL <= 23) {
|
||||
NVIC_SetPriority(TPU0_CH16_23_IRQn, TPU_PRIORITY);
|
||||
NVIC_EnableIRQ(TPU0_CH16_23_IRQn);
|
||||
NVIC_SetPriority(TPU0_CH16_23_IRQn, TPU0_CH_PRIORITY);
|
||||
} else if (TPU_PWM_CHANNEL <= 31) {
|
||||
NVIC_SetPriority(TPU0_CH24_31_IRQn, TPU_PRIORITY);
|
||||
NVIC_EnableIRQ(TPU0_CH24_31_IRQn);
|
||||
NVIC_SetPriority(TPU0_CH24_31_IRQn, TPU0_CH_PRIORITY);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -68,8 +71,11 @@ static void vPwmRun(tPwmFlagchip *env) {
|
|||
|
||||
static void setActivePercent(tPwmFlagchip *env, uint8_t percent) {
|
||||
|
||||
if (percent > 100)
|
||||
percent = 100;
|
||||
if (percent >= 100)
|
||||
percent = 85;
|
||||
|
||||
if (percent == 0)
|
||||
percent = 5;
|
||||
|
||||
// Расчет времени активности в тактах
|
||||
env->etpu_pwmconfig_tbl.u32ActiveTime = PERIOD_TICKS * percent / 100;
|
||||
|
|
|
|||
Loading…
Reference in New Issue