亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pid_reg1.asm

?? 無刷直流電機的無傳感器控制TI程序
?? ASM
字號:
;===========================================================================
; File Name:	pid_reg1.asm	
;
; Module Name: 	PID_REG1				     
;
; Initialization Routine: PID_REG1_INIT
;
; Originator:	Digital Control Systems Group
;			Texas Instruments
;
; Description:	Digital PID controller without anti-windup correction
;
;				|~~~~~~~~~~~~~~~~~~~|
;				| 		    |
;	pid_ref_reg1 o--------->|Q15   PID_REG1	 Q15|----->o pid_out_reg1
;	pid_fb_reg1  o--------->|Q15		    |
;				|___________________|
;
; Target dependency:	C2xx core only
;
;=====================================================================================
; History:
;-------------------------------------------------------------------------------------
; 9-15-2000	Release Rev 1.0
;===========================================================================
;(To use this Module, copy this section to main system file)
;		.ref	PID_REG1, PID_REG1_INIT					;function call
;		.ref	pid_fb_reg1, pid_ref_reg1				;Inputs
;		.ref	pid_out_reg1							;Output
;===========================================================================
		.def	PID_REG1, PID_REG1_INIT					;function call
		.def	pid_fb_reg1, pid_ref_reg1				;Inputs
		.def	pid_out_reg1							;Output
;===========================================================================
Kp_REG1_		.set	2000h	      ; for Kp_reg1 
Ki_HI_REG1_		.set	0010h	      ; for Ki_low_reg1   (Ki=0 for PD)
Ki_LO_REG1_		.set	0BEEFh	      ; for Ki_high_reg1  (Ki=0 for PD)
Kd_REG1_		.set	0000h	      ; for Kd_reg1       (Kd=0 for PI)
PID_OUT_MAX_    .set	0666h	      ; for pid_out_max  
PID_OUT_MIN_    .set	0000h	      ; for pid_out_min 

		.include 	"x24x_app.h"  

;===========================================================================
;Variable Definitions for PID_REG1 module
;---------------------------------------------------------------------------
Kp_reg1			.usect	"pid_reg1",1     		; Kp = Q15
Ki_low_reg1		.usect	"pid_reg1",1            ; Ki = Q31
Ki_high_reg1	.usect	"pid_reg1",1            ; Ki = Q31
Kd_reg1			.usect	"pid_reg1",1            ; Kd = Q15
K0_low_reg1		.usect	"pid_reg1",1            ; K0 = Q31
K0_high_reg1    .usect	"pid_reg1",1            ; K0 = Q31
K1_reg1			.usect	"pid_reg1",1            ; K1 = Q15
pid_fb_reg1		.usect	"pid_reg1",1
pid_ref_reg1	.usect	"pid_reg1",1
pid_out_reg1	.usect	"pid_reg1",1
pid_out1_reg1   .usect	"pid_reg1",1
pid_e0_reg1		.usect	"pid_reg1",1
pid_e1_reg1		.usect	"pid_reg1",1
pid_e2_reg1		.usect	"pid_reg1",1
tmp1_low_reg1	.usect	"pid_reg1",1
tmp1_high_reg1	.usect	"pid_reg1",1
tmp2_low_reg1	.usect	"pid_reg1",1
tmp2_high_reg1	.usect	"pid_reg1",1
tmp3_reg1		.usect	"pid_reg1",1
abs_e0_reg1		.usect	"pid_reg1",1
sign_reg1       .usect	"pid_reg1",1

;=========================================================================
PID_REG1_INIT:
;=========================================================================
        LDP		#Kp_reg1                      		
 		
 		SPLK	#Kp_REG1_,Kp_reg1
		SPLK	#Ki_LO_REG1_,Ki_low_reg1
		SPLK	#Ki_HI_REG1_,Ki_high_reg1			
		SPLK	#Kd_REG1_,Kd_reg1
		SPLK	#0,pid_e1_reg1
		SPLK	#0,pid_e2_reg1
		SPLK	#0,pid_out1_reg1  

        RET

;===============================================================================
PID_REG1:
;===============================================================================

    	SETC	SXM           		; Sign extension mode
        SETC	OVM              	; Overflow mode
        SPM		0                	; Reset SPM 	   

; Converting from Kp, Ki, Kd to K0, K1 (Note: K2 = Kd)
		LDP		#Kp_reg1
		LACC	Ki_high_reg1,16     ; ACC = Ki              	(Q31)
		ADDS	Ki_low_reg1			; ACC = Ki 					(Q31)		
 		ADD		Kp_reg1,16			; ACC = Kp + Ki				(Q31)
		ADD		Kd_reg1,16			; ACC = Kp + Ki + Kd		(Q31)
		SACH    K0_high_reg1		; K0 = Kp + Ki + Kd			(Q31)
		SACL	K0_low_reg1			; K0 = Kp + Ki + Kd			(Q31)
		
		LACC	Kd_reg1,16			; ACC = Kd					(Q15)
		SFL							; ADD = 2*Kd				(Q15)	
		ADD		Kp_reg1,16			; ACC = 2*Kd+Kp				(Q15)				
		SACH 	K1_reg1				; K1 = 2*Kd+Kp				(Q15)

; e(k) = ref(k)-fb(k) => Q15 = Q15 - Q15 
		LACC    pid_ref_reg1        ; ACC =  pid_ref_reg1               (Q15)
		SUB     pid_fb_reg1         ; ACC = pid_ref_reg1 - pid_fb_reg1  (Q15)
		SACL    pid_e0_reg1         ; e(k) = pid_ref_reg1 - pid_fb_reg1 (Q15)

; tmp1 = -K1*e(k-1)+K2*e(k-2) => Q31 = -Q15*Q15 + Q15*Q15 		
   		LT		Kd_reg1				; TREG = K2   						(Q15)
		MPY		pid_e2_reg1			; PREG = K2*e(k-2)   				(Q30)
		PAC							; ACC = K2*e(k-2)   				(Q30)
		LT		K1_reg1				; TREG = K1   						(Q15)
		MPY		pid_e1_reg1			; PREG = K1*e(k-1)   				(Q30)
		SPAC						; ACC = -K1*e(k-1)+K2*e(k-2)   		(Q30)	
        SACH	tmp1_high_reg1,1	; tmp1 = -K1*e(k-1)+K2*e(k-2)   	(Q31)
        SACL	tmp1_low_reg1,1		; tmp1 = -K1*e(k-1)+K2*e(k-2)   	(Q31)
                
; tmp2 = K0*e(k)   =>  Q31 = Q31*Q15   	   	
; check sign for "error" only   
        
  		LACC	pid_e0_reg1      	; ACC = e(k)	
   		SACL	sign_reg1			; Sign (0=+,1=-) for K0*e(k)

; take absolute for "pid_e2_reg1" only because "K0" is always positive    	   	

   		ABS							; ACC = |e(k)|
   		SACL	abs_e0_reg1			; |e(k)| = ACC low  	   	       
   	   	
; now they're positive.    	   	
		LT		abs_e0_reg1   		; TREG = |e(k)|            
   		MPYU	K0_low_reg1    		; PREG = K0_low*|e(k)| 	   
  		SPH		tmp2_low_reg1  		; tmp2_low = PREG high      
  		MPYU	K0_high_reg1		; PREG = K0_high*|e(k)|
   		PAC							; ACC = K0_high*|e(k)|
   		ADDS 	tmp2_low_reg1 		; ACC = K0_high*|e(k)| + tmp2_low
   		SACH	tmp2_high_reg1,1	; tmp2_high = ACC high   	(Q31)
   		SACL	tmp2_low_reg1,1		; tmp2_low = ACC low     	(Q31)

; check the sign condition
		LACC	sign_reg1			; ACC = sign
		BCND  	DONE_REG1, GT      	; Check sign = positive ?
		LACC	tmp2_high_reg1,16  	; ACC high= tmp2_high
		ADDS	tmp2_low_reg1		; ACC low = tmp2_low
		NEG							; Make the result negative
  		SACH	tmp2_high_reg1		; tmp2_high = ACC high  
  		SACL	tmp2_low_reg1		; tmp2_low = ACC low
DONE_REG1	

; tmp2 + tmp1 = tmp3  => Q31 + Q31 = Q15
		LACC	tmp1_high_reg1,16  	; ACC high = tmp1_high			(Q31)
   		ADDS	tmp1_low_reg1		; ACC low = tmp1_low            (Q31)
		ADDS	tmp2_low_reg1		; ACC = tmp1_low+tmp2_low       (Q31)
		ADDH 	tmp2_high_reg1		; ACC = tmp1_high+tmp2_high     (Q31)
		SACH	tmp3_reg1			; tmp3 = tmp1_high+tmp1_high    (Q15) 

; u(k) = u(k-1) + tmp3  =>  Q15 = Q15 + Q15 
		LACC	pid_out1_reg1,16	; ACC = u(k-1)						(Q15)
		ADD		tmp3_reg1,16		; ACC = u(k-1)+K0*e(k)-K1*e(k-1)+K2*e(k-2)  (Q15)
		SACH	pid_out_reg1	    ; u(k) = u(k-1)+K0*e(k)-K1*e(k-1)+K2*e(k-2)  (Q15)

; If u(k) > u_max, u(k) = u_max. If u(k) < u_min, u(k) = u_min.  
		LACC 	pid_out_reg1		; ACC = u(k)						(Q15)
        SUB		#PID_OUT_MAX_		; ACC = u(k)-u_max					(Q15)
        BCND	SAT_MAX,GT			; Branch if saturated at max
        LACC  	pid_out_reg1		; ACC = u(k)						(Q15)
        SUB		#PID_OUT_MIN_		; ACC = u(k)-u_min					(Q15)
        BCND	SAT_MIN,LT			; Brnch if saturated at min
		B		REG1_END
SAT_MIN
        SPLK	#PID_OUT_MIN_,pid_out_reg1	; u(k) = u_min             (Q15)
   		B		REG1_END
SAT_MAX        
        SPLK    #PID_OUT_MAX_,pid_out_reg1	; u(k) = u_max             (Q15)
REG1_END 
; Updating the errors e(k-1), e(k-2) and output u(k-1)		
		LACC	pid_e1_reg1			; ACC = e(k-1)                 		(Q15)
		SACL	pid_e2_reg1	        ; e(k-2) = e(k-1)                   (Q15)
		LACC	pid_e0_reg1			; ACC = e(k)                 		(Q15)
		SACL	pid_e1_reg1	        ; e(k-1) = e(k)        			 	(Q15)				
        LACC	pid_out_reg1		; ACC = u(k)                 		(Q15)
		SACL	pid_out1_reg1	    ; u(k-1) = u(k)                     (Q15)
	
		CLRC    SXM
		
		RET





?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
香蕉加勒比综合久久| 久久99热99| 蜜臀91精品一区二区三区| 国产原创一区二区三区| 欧美在线|欧美| 欧美精品一区二区三区蜜桃视频 | 日本电影亚洲天堂一区| 欧美一区二区三区免费在线看| 欧美国产成人精品| 五月婷婷欧美视频| 91麻豆精东视频| 久久九九99视频| 日韩黄色片在线观看| 91污在线观看| 国产性做久久久久久| 日本不卡一区二区三区| 色综合一个色综合亚洲| 国产欧美一区二区三区网站| 日韩电影免费在线看| 在线亚洲高清视频| 国产精品免费久久久久| 91在线观看免费视频| 亚洲视频小说图片| 一区二区三区高清不卡| 成人综合婷婷国产精品久久免费| 亚洲人成网站色在线观看| 日韩欧美一卡二卡| 欧美日韩在线播放| 国产一区二区三区美女| 久久99热99| 精品一区二区三区日韩| 人人超碰91尤物精品国产| 丝袜美腿亚洲综合| 麻豆成人久久精品二区三区红| 亚洲综合在线观看视频| 一级做a爱片久久| 亚洲免费观看在线观看| 午夜精品久久久久久久99樱桃| 亚洲高清在线精品| 经典三级一区二区| 成人午夜视频在线| 91久久久免费一区二区| 欧美浪妇xxxx高跟鞋交| 欧美精品一区在线观看| 一区二区三区中文字幕在线观看| 又紧又大又爽精品一区二区| 视频一区中文字幕| 成人黄色综合网站| 在线播放中文一区| 中文字幕中文字幕一区| 亚洲国产成人va在线观看天堂| 日韩高清一级片| 成人动漫精品一区二区| 日韩一级成人av| 一区二区三区在线免费视频| 美女脱光内衣内裤视频久久网站| 成人av电影在线观看| 日韩精品一区二区三区老鸭窝| 国产精品卡一卡二| 国产一区二区三区四区五区入口 | 亚洲影视在线观看| 国产精品亚洲午夜一区二区三区 | 国产一区二区三区免费在线观看 | 色综合色狠狠综合色| 精品少妇一区二区三区在线视频| 亚洲欧洲国产专区| 成人午夜碰碰视频| 亚洲欧洲日产国产综合网| 久久久久久久久久久99999| www久久精品| 欧美综合色免费| 国产一区二区精品在线观看| 精品1区2区3区| 亚洲综合色网站| 91蝌蚪porny成人天涯| 中国av一区二区三区| 激情图片小说一区| 欧美一级欧美三级| 日本午夜精品视频在线观看| 欧美日韩国产欧美日美国产精品| 亚洲综合视频在线| 欧美私模裸体表演在线观看| 久久国产精品99精品国产 | 欧美xxx久久| 国产99久久久国产精品| 久久久久久电影| 成人性生交大片免费看视频在线| 亚洲日本青草视频在线怡红院| 色婷婷综合久久| 精品在线观看视频| 天堂一区二区在线| 久久这里只精品最新地址| 337p亚洲精品色噜噜噜| 一区二区三区中文字幕| 国产精品亚洲第一区在线暖暖韩国| 亚洲午夜激情网站| 日本亚洲天堂网| 亚洲va国产va欧美va观看| 精品国产91九色蝌蚪| 91精品国产色综合久久| 欧美日韩国产美| 91在线看国产| k8久久久一区二区三区| 麻豆91免费观看| 亚洲一卡二卡三卡四卡无卡久久| 精品久久久久久久久久久久久久久久久| 91国产免费观看| 欧美日韩一卡二卡| 欧美日韩高清一区| 亚洲黄色免费网站| 亚洲精品视频在线| 亚洲欧洲av在线| 亚洲国产精品自拍| 青青草精品视频| 免费在线观看精品| 日欧美一区二区| 久久99精品久久久久久久久久久久| 天天爽夜夜爽夜夜爽精品视频| 一区二区在线观看免费视频播放| 一区二区三区资源| 久久er精品视频| 日本丶国产丶欧美色综合| 91精品国产综合久久精品app| 日韩视频123| 亚洲另类春色国产| 国产一区二区精品在线观看| 欧美熟乱第一页| 中文字幕在线观看一区二区| 美女一区二区在线观看| 国产一区二区三区免费看| 色综合夜色一区| 欧美片网站yy| 国产精品不卡在线| 亚洲电影一级片| 国产夫妻精品视频| 欧美丝袜丝交足nylons图片| 精品国产一区二区亚洲人成毛片 | 蜜桃av噜噜一区二区三区小说| 国产精品一区免费在线观看| 波多野结衣中文一区| 91亚洲精品久久久蜜桃网站 | 欧美日韩中文国产| 中文字幕中文乱码欧美一区二区 | 精品少妇一区二区三区免费观看 | 另类专区欧美蜜桃臀第一页| 色婷婷久久综合| 国产精品私人影院| 国产一本一道久久香蕉| 欧美男人的天堂一二区| 亚洲一区在线视频| 在线观看免费视频综合| 国产精品你懂的在线欣赏| 国产东北露脸精品视频| 精品久久久三级丝袜| 久久99精品国产麻豆婷婷| 欧美电影在哪看比较好| 日韩精品1区2区3区| 欧美电影免费观看高清完整版在线观看| 亚洲一区二区在线免费观看视频| 精品动漫一区二区三区在线观看| 国产视频在线观看一区二区三区 | 久久久久国产精品麻豆ai换脸| 韩国v欧美v亚洲v日本v| 精品国产污网站| 韩国三级在线一区| 国产精品女人毛片| 欧美日韩国产区一| 国产一区二区三区四区五区美女| 欧美国产视频在线| 91国偷自产一区二区使用方法| 一区二区三区四区不卡视频 | 欧日韩精品视频| 国产一区视频导航| 亚洲品质自拍视频网站| 日韩一区二区在线播放| 成人动漫在线一区| 亚洲成av人影院| 中文字幕免费一区| 日韩一级在线观看| 91国偷自产一区二区开放时间| 精品无人码麻豆乱码1区2区| 中文字幕一区二区三区蜜月| 日韩欧美综合在线| 在线精品视频一区二区三四| 国产精品一区二区黑丝| 日本不卡一区二区三区高清视频| 国产精品国产自产拍在线| 欧美tk丨vk视频| 欧美一区二区三区爱爱| 欧美亚洲动漫制服丝袜| 色综合久久久久综合体桃花网| 国产精品一线二线三线精华| 日韩影院在线观看| 亚洲不卡在线观看| 天堂影院一区二区| 午夜精品久久久久久久蜜桃app| 亚洲精品乱码久久久久久久久| 国产精品久久久久久久久久久免费看 | 色综合天天综合给合国产| 岛国一区二区三区|