PWM的占空比实时调整
一直都是固定脉宽了如何做实时调整,调整的范围在多少为宜 我用的AC7801FCLA我是这样调整我的pwm占空比,可以参考:
void UTILS_PwmDutySet(PWM_Type *pPwmInst, PWM_ChannelType pwmCh, uint32_t freq, uint16_t dutyRatio)
{
dutyRatio = (dutyRatio >= 100) ? 100 : dutyRatio;
uint16_t pres = 0;
pres = (freq < 1000) ? 10 : 0;
pres = (freq < 100) ? 100 : 0;
pres = (freq < 10) ? 1000 : 0;
uint16_t pwm_value = MOD_PWM(freq, pres) * dutyRatio / 100;
PWM_SetChannelCountValue(pPwmInst, pwmCh, pwm_value);
//printf("PWM Channel %d set duty ratio: %d\r\n", pwmCh, dutyRatio);
} 实时更新计数器值 实时调整会不会变乱啊 一般是什么时候生效呢 在新旧交替是什么状态呢 是在下一个时钟周期还是机器周期呢 需要有一个提前量吧 不可能是真正的实时 这个可以产生1ns的脉宽吗?
tpgf 发表于 2022-2-3 16:01
实时调整会不会变乱啊
不会,如果不能调整,那不就是固定方波了么
页:
[1]