Обновление
This commit is contained in:
parent
cea297a899
commit
babf93dad6
|
|
@ -20,15 +20,26 @@ typedef struct {
|
||||||
} tPwmFlagchip;
|
} tPwmFlagchip;
|
||||||
|
|
||||||
|
|
||||||
|
tPwmFlagchip PWM_Initial(
|
||||||
|
uint32_t PeriodTime,
|
||||||
|
uint32_t ActiveTime,
|
||||||
|
uint8_t TPU_PWM_CHANNEL,
|
||||||
|
uint8 TPU0_CH_PRIORITY,
|
||||||
|
TPU_EventCallbackType Bsp_Tpu_PwmCallback,
|
||||||
|
TPU_TCR1OverflowCallbackType Bsp_Tpu_OverflowCallBack);
|
||||||
|
|
||||||
tPwmIO vPwmGetIo(tPwmFlagchip *env);
|
tPwmIO vPwmGetIo(tPwmFlagchip *env);
|
||||||
|
|
||||||
// Частота шины
|
// Частота шины
|
||||||
#define BUS_CLK 120.0f
|
#define BUS_CLK 120000000U
|
||||||
// Делитель выходной частоты
|
|
||||||
#define SCG_CLK_DIV 4.0f
|
|
||||||
// Период такта
|
|
||||||
// (1 / (BUS_CLK / SCG_CLK_DIV))
|
|
||||||
|
|
||||||
#define NS_TO_TIME(NS) (NS / (1 / (BUS_CLK / SCG_CLK_DIV)))
|
// Делитель выходной частоты
|
||||||
|
#define SCG_CLK_DIV 4U
|
||||||
|
|
||||||
|
#define TPU_FREQ (BUS_CLK / SCG_CLK_DIV)
|
||||||
|
|
||||||
|
#define PWM_FREQ 25000 // 25 kHz
|
||||||
|
|
||||||
|
#define PERIOD_TICKS (TPU_FREQ / PWM_FREQ)
|
||||||
|
|
||||||
#endif //PWM_FLAGCHIP_H
|
#endif //PWM_FLAGCHIP_H
|
||||||
|
|
|
||||||
|
|
@ -74,10 +74,21 @@ static void vPwmRun(tPwmFlagchip *env) {
|
||||||
TPU_StartChannel();
|
TPU_StartChannel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void setActivePercent(tPwmFlagchip *env, uint8_t percent) {
|
||||||
|
|
||||||
|
if (percent > 100)
|
||||||
|
percent = 100;
|
||||||
|
|
||||||
|
// Расчет времени активности в тактах
|
||||||
|
env->etpu_pwmconfig_tbl.u32ActiveTime = PERIOD_TICKS * percent / 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
tPwmIO vPwmGetIo(tPwmFlagchip *env) {
|
tPwmIO vPwmGetIo(tPwmFlagchip *env) {
|
||||||
tPwmIO io = {
|
tPwmIO io = {
|
||||||
.env = env,
|
.env = env,
|
||||||
.run = (PwmIOTransaction) vPwmRun,
|
.run = (PwmIOTransaction) vPwmRun,
|
||||||
|
.setActivePercent = (PwmIOTransactionSetActivePercent) setActivePercent
|
||||||
};
|
};
|
||||||
return io;
|
return io;
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue