📄 pid_c.asm
字号:
.include "x24x_app.h"
.def PID_ref_c, PID_in_c, PID_out_c
.def VE2_c,VE1_c,VE0_c
.def PIDTMP1_c,PIDTMP2_c,PIDTMP3_c
.def KP_c,KI_c,KD_c
.def PID_max_c,PID_min_c
.def PID_INIT_c
.def PID_MAIN_c
; .ref DDD
.def switch_c
; .ref CCC
.ref in_Udc
PID_ref_c .usect "pid",1
PID_in_c .usect "pid",1
PID_out_c .usect "pid",1
VE2_c .usect "pid",1
VE1_c .usect "pid",1
VE0_c .usect "pid",1
PIDTMP1_c .usect "pid",1
PIDTMP2_c .usect "pid",1
PIDTMP3_c .usect "pid",1
KP_c .usect "pid",1
KI_c .usect "pid",1
KD_c .usect "pid",1
PID_max_c .usect "pid",1
PID_min_c .usect "pid",1
switch_c .usect "pid",1
PID_INIT_c: NOP
LDP #VE2_c
SPLK #0,VE2_c
SPLK #0,VE1_c
SPLK #0,VE0_c
SPLK #0,PIDTMP1_c
SPLK #0,PIDTMP2_c
SPLK #0,PIDTMP3_c
LDP #KP_c
SPLK #0,KP_c ;Q15
SPLK #327,KI_c ;Q15
SPLK #0,KD_c ;0
LDP #PID_max_c
SPLK #19660,PID_max_c
SPLK #14745,PID_min_c
LDP #PID_in_c
SPLK #15564,PID_out_c
SPLK #1200,switch_c
PID_MAIN_c:
LDP #PID_ref_c ;
SETC SXM ;允许符号扩展
; LDP #in_Udc
; LACC in_Udc
; SUB #990
; BCND PID6_c,GT
; B PID7_c
;PID6_c:
; LDP #PID_min_c
; BLDD #16384,PID_min_c
PID7_c:
LDP #PID_ref_c
LACC PID_ref_c ;Q6
SUB PID_in_c ;Q6
SACL VE2_c ;e(k)= PID_ref-PID_in,Q6
SUB VE1_c ;e(k-1),Q6
SACL PIDTMP1_c ;Delta(e(k))=e(k)-e(k-1),Q6
SUB VE1_c
ADD VE0_c ;e(k-2),Q6
SACL PIDTMP3_c ;Delta(e(k))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -