This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于BLDC的PWM调制的问题

  在BLDC控制的PWM调制示例代码中,有一段代码不太明白,请教一下各位:

   Tmp = (int32)Period*(int32)GPR0_BLDC_PWM

   GPR0_BLDC_PWM=DutyFunc是占空比调制系数,是int16格式的。

   Period是int16格式的。

   而初始化时,DutyFunc=0x0500,那么int16格式的Period再乘以一个'0x0500'表达的是个什么意思啊?

 

  • 周期值乘以占空比,不就是等于比较寄存器的值吗?至于初始值,则是给比较寄存器的初始值。DutyFunc应该是有Q格式的,你查一下。

    Eric

  •        在计数器的周期寄存器知一定时,PWM波的占空比由计数器的比较寄存器值决定,当计数值与比较寄存器值发生匹配时,PWM输出产生触发,所以在控制系统中,只要将数字PI调节计算出的结果,按一定系数转换成对应的占空比值,乘以周期值后存入比较寄存器就可获得所需的开关管控制信号。