STM32电机库的问题
在ST的PMSM的电机库里,在 SVPWM_3ShuntCalcDutyCycles这个子程序里,是计算PWM的占空比的,有这么一段:
switch(bSector)
{
case SECTOR_1:
hTimePhA = (T/8) + ((((T + wX) - wZ)/2)/131072);
hTimePhB = hTimePhA + wZ/131072;
hTimePhC = hTimePhB - wX/131072;
// ADC Syncronization setting value
if ((u16)(PWM_PERIOD-hTimePhA) > TW_AFTER)
{
hTimePhD = PWM_PERIOD - 1;
}
else
{
hDeltaDuty = (u16)(hTimePhA - hTimePhB);
// Definition of crossing point
if (hDeltaDuty > (u16)(PWM_PERIOD-hTimePhA)*2)
{
hTimePhD = hTimePhA - TW_BEFORE; // Ts before Phase A
}
else
{
hTimePhD = hTimePhA + TW_AFTER; // DT + Tn after Phase A
if (hTimePhD >= PWM_PERIOD)
{
// Trigger of ADC at Falling Edge PWM4
// OCR update
//Set Polarity of CC4 Low
PWM4Direction=PWM1_MODE;
hTimePhD = (2 * PWM_PERIOD) - hTimePhD-1;
}
}
请问这里的131017是哪里来的数据,是干什么用的?
是分母。估计是一个 周期或某个 范围的数据。 楼主这个库,怎么找到的,可以传一份给我吗?1137502123:'(:'(:'(:'(:'( 131072是2^17,除以131072的意思是可以理解为把数据左移17位。抢个地板:lol 本帖最后由 dzzwoaizi 于 2017-8-15 10:03 编辑
其实这里转化的就是 (T/8)-((wZ-wY)/65536);
至于为啥,你要结合上面的公式和中心对称模式的技术模式来计算的。你可以看看TI的和Microchipde的文档,或这看这个,不知道ST怎么想的,非要吧DQ搞反一下,很让人无语。
页:
[1]