Part Number:TMS320F28P659DK-Q1
TMS320F28P659DK-Q1 在 CPU1 以 200MHZ 主频计算完电流环后,更新PWM的寄存器,但执行以下程序花费了800ns,有方法加快执行吗,800ns占整个电路环周期比例太大。
HWREGH(EPWM1_BASE+ EPWM_O_CMPA+ 0x1U) = (uint16_t)compCount1; //更新PWM1的比较寄存器
HWREGH(EPWM2_BASE+ EPWM_O_CMPA+ 0x1U) = (uint16_t)compCount2; //更新PWM2的比较寄存器
HWREGH(EPWM3_BASE+ EPWM_O_CMPA+ 0x1U) = (uint16_t)compCount3; //更新PWM3的比较寄存器
Yale Li:
YanChun Wang 说:但执行以下程序花费了800ns,
怎么得到的?
YanChun Wang 说:
HWREGH(EPWM1_BASE+ EPWM_O_CMPA+ 0x1U) = (uint16_t)compCount1; //更新PWM1的比较寄存器
HWREGH(EPWM2_BASE+ EPWM_O_CMPA+ 0x1U) = (uint16_t)compCount2; //更新PWM2的比较寄存器
HWREGH(EPWM3_BASE+ EPWM_O_CMPA+ 0x1U) = (uint16_t)compCount3; //更新PWM3的比较寄存器
方便查看一下对应的反汇编代码吗?
,
YanChun Wang:
在程序的前后反转GPIO的电平,电流环计算完成,如果不更新PWM比较寄存器是1.2us,更新PWM1,PWM2,PWM3的寄存器用时就是2us
,
YanChun Wang:
反转GPIO后用示波器测量
,
Yale Li:
方便的话还是查看一下反汇编代码,我们来了解一下程序的细节。单纯的修改寄存器的值是不会需要这么长时间的。