svgen.s

来自「基于DsPic30F4011的高精度位置伺服控制系统」· S 代码 · 共 91 行

S
91
字号
;*******************************************************************
; C-Version of code
;
;		if(PIParmVelocity.qOut > 0)
;		{
;				PWMCON1bits.PEN1H = 0;		//PWMxH引脚使能为PWM输出
;				Nop();
;				PWMCON1bits.PEN1L = 1;	
;
;		}
;		else if(PIParmVelocity.qOut < 0)
;		{
;			PIParmVelocity.qOut = -PIParmVelocity.qOut;	
;
;			PWMCON1bits.PEN1L = 0;
;			Nop();
;			PWMCON1bits.PEN1H = 1;
;		}	
;
;		PDC1 = (((long)PIParmVelocity.qOut * (long)PTPER * 2)>>15);
;*******************************************************************


		.include "general.inc"
		.include "PI.inc"
		.include "SVGen.inc"
		
; Register usage

		.equ WorkW,		w1	;		
		
		.equ Vr1W,		w4	;
		
		
		
		.equ	dPWM1,	PDC1
		
		
;=================== CODE =====================
				
		.section  .text
		.global		_CalcTimes
		.global		CalcTimes
		
_CalcTimes:		
CalcTimes:		
		
		mov.w _PIParmVelocity+PI_qOut,Vr1W
		
		cp0		Vr1W
		bra		le,jCalcTime10			;Vr1W<=0
	;;PWMCON1bits.PEN1H = 0;		
		bclr.b	_PWMCON1,#4
	;;PWMCON1bits.PEN1L = 1;		
		bset.b	_PWMCON1,#0
	
jCalcTime10:	
		cp0		Vr1W
		bra		ge, jCalcTime15			;Vr1W>=0
		neg.w	Vr1W,w0
	;;PWMCON1bits.PEN1L = 0;	
		bclr.b	_PWMCON1,#0
	;;PWMCON1bits.PEN1H = 1;			
		bset.b	_PWMCON1,#4

jCalcTime15:
		
		return
		
		.end
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?