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.

COMPA COMPB的关系

Other Parts Discussed in Thread: TMS320F28027, CONTROLSUITE

CPU:TMS320F28027,使用launchpad进行实验。

下面的汇编语言代码来自controlsuite,为什么COMPA COMPB是这样的关系呢?

PWM是互补输出。

MOVW DP,#_EPwm:n:Regs.CMPA
MOV @_EPwm:n:Regs.CMPA.half.CMPA,AL
ROR ACC
MOV @_EPwm:n:Regs.CMPB,AL

;=============================
PWMDRV_ComplPairDB .macro n
;=============================
MOVW DP, #_PWMDRV_ComplPairDB_Duty:n: ; load DP for net pointer
MOVL XAR0, @_PWMDRV_ComplPairDB_Duty:n: ; Load net pointer address to XAR0
MOVL XT,@_PWMDRV_ComplPairDB_Period:n:
QMPYL ACC,XT,*XAR0 ; ACC= (I8Q24) * (I16Q16) = (I24Q40): upper 32-bits -> ACC = (I24Q8)
SFR ACC,#8 ; ACC>>8: AL = duty
MOVW DP,#_EPwm:n:Regs.CMPA
MOV @_EPwm:n:Regs.CMPA.half.CMPA,AL
ROR ACC
MOV @_EPwm:n:Regs.CMPB,AL

.endm