这是老工程师的汇编:
_Epwm1_Isr:
; entry into Zero event Isr 进入零中断事件
;automatic context save :
;ST0,T,AL,AH,PL,PH,AR0,AR1,ST1,DP,IER,DBGSTAT,return address
;context save
ASP
MOVL *SP++,XAR7
SPM 0 NOP *,ARP7 ; Why XAR4 will be changed (?)
CLRC PAGE0,OVM
SETC SXM
MOVW DP,#_IsrVars + _CPU_DP
MOVL XAR7,#_AdcResult + DCCURR
MOV AL,*
MOV @_u16ADCurr,AL
CMP @_u16FlagPFCSd,#1
BF DCDC_PFCSD,EQ ;BF跳转指令
MOVL XAR7,#_GpioDataRegs + _GPBDAT TBIT *,#02 ;Gpio34 PFCSd
BF DCDC_NOPFCSd,NTC
INC @_u16CntPFCSd ;Cnt add 1
CMP @_u16CntPFCSd,#2
BF DCDC_NOPFCSd,LT
MOVB AL,#0x01
MOV @_u16FlagPFCSd,AL
中间有几个跳转指令,我不知道跳转指令的条件是什么,什么时候跳转到DCDC_NOPFCSd,什么时候跳转到 DCDC_NOPFCSd。
Seven Han:
请问这是TI的某个例程吗?
关于汇编您可参考以下文档:
http://www.ti.com.cn/cn/lit/ug/spru430f/spru430f.pdf
这是老工程师的汇编:
_Epwm1_Isr:
; entry into Zero event Isr 进入零中断事件
;automatic context save :
;ST0,T,AL,AH,PL,PH,AR0,AR1,ST1,DP,IER,DBGSTAT,return address
;context save
ASP
MOVL *SP++,XAR7
SPM 0 NOP *,ARP7 ; Why XAR4 will be changed (?)
CLRC PAGE0,OVM
SETC SXM
MOVW DP,#_IsrVars + _CPU_DP
MOVL XAR7,#_AdcResult + DCCURR
MOV AL,*
MOV @_u16ADCurr,AL
CMP @_u16FlagPFCSd,#1
BF DCDC_PFCSD,EQ ;BF跳转指令
MOVL XAR7,#_GpioDataRegs + _GPBDAT TBIT *,#02 ;Gpio34 PFCSd
BF DCDC_NOPFCSd,NTC
INC @_u16CntPFCSd ;Cnt add 1
CMP @_u16CntPFCSd,#2
BF DCDC_NOPFCSd,LT
MOVB AL,#0x01
MOV @_u16FlagPFCSd,AL
中间有几个跳转指令,我不知道跳转指令的条件是什么,什么时候跳转到DCDC_NOPFCSd,什么时候跳转到 DCDC_NOPFCSd。
bamboo wang:
回复 Seven Han:
这个不是例程:
我想咨询下以下代码:
FUN_MAIN_DRV_BURST_OFF_JUDGE: MMOV32 MR1,@_ClatoCpuVar._f32VdcPiOut MCMPF32 MR1,#BURST_IN_POINT MNOP MNOP MNOP MBCNDD FUN_MAIN_DRV_BURST_OFF,LT ;ACC < 0 MNOP MNOP MNOP MBCNDD FUN_SR_BURST,UNC ;无形条件指令 MNOP MNOP MNOP
FUN_MAIN_DRV_BURST_ON_JUDGE: MMOV32 MR1,@_ClatoCpuVar._f32VdcPiOut MCMPF32 MR1,#BURST_OUT_POINT MNOP MNOP MNOP MBCNDD FUN_MAIN_DRV_BURST_ON,GT ;ACC > 0 MNOP MNOP MNOP MBCNDD FUN_SR_BURST,UNC MNOP MNOP MNOP
问题1·:
LT, GT. 都与ACC累加器有关系,但是我并没有看到这个累加器。
问题2:
#BURST_OUT_POINT 这个值是多少呢,我没看到。
这是老工程师的汇编:
_Epwm1_Isr:
; entry into Zero event Isr 进入零中断事件
;automatic context save :
;ST0,T,AL,AH,PL,PH,AR0,AR1,ST1,DP,IER,DBGSTAT,return address
;context save
ASP
MOVL *SP++,XAR7
SPM 0 NOP *,ARP7 ; Why XAR4 will be changed (?)
CLRC PAGE0,OVM
SETC SXM
MOVW DP,#_IsrVars + _CPU_DP
MOVL XAR7,#_AdcResult + DCCURR
MOV AL,*
MOV @_u16ADCurr,AL
CMP @_u16FlagPFCSd,#1
BF DCDC_PFCSD,EQ ;BF跳转指令
MOVL XAR7,#_GpioDataRegs + _GPBDAT TBIT *,#02 ;Gpio34 PFCSd
BF DCDC_NOPFCSd,NTC
INC @_u16CntPFCSd ;Cnt add 1
CMP @_u16CntPFCSd,#2
BF DCDC_NOPFCSd,LT
MOVB AL,#0x01
MOV @_u16FlagPFCSd,AL
中间有几个跳转指令,我不知道跳转指令的条件是什么,什么时候跳转到DCDC_NOPFCSd,什么时候跳转到 DCDC_NOPFCSd。
mangui zhang:
回复 Seven Han:
感谢分享资料非常有用查找了SPM 0的相关指令说明