📄 rmp_cntl.asm
字号:
;===========================================================================
; 文件名: RMP_CNTL.asm
;
; 模块名: RAMP_CNTL
;
; 初始化程序名: RAMP_CNTL_INIT
;
; 公司: 达盛科技
;
; 功能: 模块产生斜坡上升和斜坡下降控制功能. 当输出变量setpt_value 等于输入
; 变量target_value时,输出标志s_eq_t_flg被设置成7FFFh.
;
; |~~~~~~~~~~~~~~~|
; target_value o------->| |----->o setpt_value
; | RAMP_CNTL |
; | |----->o s_eq_t_flg
; |_______________|
;
; 目标cpu: x2407
;
;=====================================================================================
; 修改记录:
;-------------------------------------------------------------------------------------
; 最后更新日期:2005.06.22 版本号:Ver 1.0
;===========================================================================
;(使用子程序就把下面的变量声明文件复制到主程序中)
; .ref RAMP_CNTL, RAMP_CNTL_INIT ; 子程序调用
; .ref target_value ; 输入
; .ref rmp_dly_max, rmp_lo_limit ; 输入参数
; .ref rmp_hi_limit ; 输入参数
; .ref setpt_value, s_eq_t_flg ; 输出
;===========================================================================
;外部变量定义.
.def RAMP_CNTL, RAMP_CNTL_INIT ; 子程序调用
.def target_value ; 输入
.def rmp_dly_max, rmp_lo_limit ; 输入参数
.def rmp_hi_limit ; 输入参数
.def setpt_value, s_eq_t_flg ; 输出
;===========================================================================
target_value .usect "rmp_cntl",1
setpt_value .usect "rmp_cntl",1
s_eq_t_flg .usect "rmp_cntl",1
rmp_delay_cntr .usect "rmp_cntl",1
rmp_dly_max .usect "rmp_cntl",1
rmp_lo_limit .usect "rmp_cntl",1
rmp_hi_limit .usect "rmp_cntl",1
RAMP_CNTL_INIT: ;初始化程序
LDP #setpt_value
SPLK #0h,setpt_value
SPLK #0h,rmp_delay_cntr
SPLK #7,rmp_dly_max
SPLK #0300h,rmp_lo_limit
SPLK #07500h,rmp_hi_limit
RET
RAMP_CNTL:
SETC SXM ; 允许符号扩展
SETC OVM ; 设置溢出保护
LDP #target_value
LACC target_value
SUB setpt_value
BCND SET_FLG, EQ ; 如果设定值 = 目标值则使
; s_eq_t_flg = 7FFFh 然后退出
LACC rmp_delay_cntr
ADD #1
SACL rmp_delay_cntr
SUB rmp_dly_max
BCND SRC_EXIT, LT
CHNG_VALUE:
LACC target_value
SUB setpt_value
BCND INC_VALUE, GT
DEC_VALUE LACC setpt_value
SUB #1
SACL setpt_value
SUB rmp_lo_limit
BCND SRC_1, GEQ
LACC rmp_lo_limit
SACL setpt_value
B SRC_1
INC_VALUE LACC setpt_value
ADD #1
SACL setpt_value
SUB rmp_hi_limit
BCND SRC_1, LEQ
LACC rmp_hi_limit
SACL setpt_value
SRC_1:
SPLK #0, rmp_delay_cntr
SRC_EXIT
RET
SET_FLG
SPLK #7FFFh, s_eq_t_flg
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -