最近的项目使用到了汇编语言,其中有这么几句 :
MOVW DP,#_EPwm2Regs.CMPB
MOV @_EPwm2Regs.CMPB, AH
MOV @_EPwm2Regs.CMPA.half.CMPA, #(PWM_PRD+10)
以上对寄存器操作的时候,都需要将寄存器的地址赋予DP寄存器,那么为什不在第二句之后加上这一句 ” MOVW DP,#_EPwm2Regs.CMPA.half.CMPA “,不加上这句话,是不是默认CMPA与CMPB位于同一页内啊。请教于各位高手。
Eric Ma:
yi
同意你的观点,你也可以加上MOVW DP,#_EPwm2Regs.CMPA.half.CMPA ,观察DP寄存器变化。
Eric
最近的项目使用到了汇编语言,其中有这么几句 :
MOVW DP,#_EPwm2Regs.CMPB
MOV @_EPwm2Regs.CMPB, AH
MOV @_EPwm2Regs.CMPA.half.CMPA, #(PWM_PRD+10)
以上对寄存器操作的时候,都需要将寄存器的地址赋予DP寄存器,那么为什不在第二句之后加上这一句 ” MOVW DP,#_EPwm2Regs.CMPA.half.CMPA “,不加上这句话,是不是默认CMPA与CMPB位于同一页内啊。请教于各位高手。
10#:
是的,DP是以连续的64个word为单位,称为一个数据页,参考C28x 指令集文档(spru430)。
查看ePWM2的CMPB和CMPA寄存器,确实它们在同一页(数据手册Table 4-13. ePWM1–ePWM4 Control and Status Registers),所以后面可以不加上查找DP的语句。