Обновление
This commit is contained in:
parent
cea297a899
commit
babf93dad6
|
|
@ -20,15 +20,26 @@ typedef struct {
|
|||
} 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);
|
||||
|
||||
// Частота шины
|
||||
#define BUS_CLK 120.0f
|
||||
// Делитель выходной частоты
|
||||
#define SCG_CLK_DIV 4.0f
|
||||
// Период такта
|
||||
// (1 / (BUS_CLK / SCG_CLK_DIV))
|
||||
#define BUS_CLK 120000000U
|
||||
|
||||
#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
|
||||
|
|
|
|||
|
|
@ -74,10 +74,21 @@ static void vPwmRun(tPwmFlagchip *env) {
|
|||
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 io = {
|
||||
.env = env,
|
||||
.run = (PwmIOTransaction) vPwmRun,
|
||||
.setActivePercent = (PwmIOTransactionSetActivePercent) setActivePercent
|
||||
};
|
||||
return io;
|
||||
}
|
||||
Loading…
Reference in New Issue