📄 rmp2cntl.asm
字号:
;===========================================================================
; 文件名: rmp2cntl.asm
;
; 模块名: RMP2CNTL
;
; 初始化程序名: RMP2CNTL_INIT
;
; 公司: 达盛科技
;
; 功能描述: 模块产生斜坡函数.输入变量rmp2_out跟随期望值rmp2_desired斜坡变化
;
; |~~~~~~~~~~~|
; | |
; rmp2_desired o------>| RMP2CNTL |----->o rmp2_out
; | |
; | |
; |___________|
;
;=====================================================================================
; 修改记录:
;-------------------------------------------------------------------------------------
; 2005.08.22 版本:Ver 1.0
;===========================================================================
;(要调用模块,就将下面声明语句复制到主程序代码中相应位置)
; .ref RMP2CNTL, RMP2CNTL_INIT ;子程序调用
; .ref rmp2_dly, rmp2_desired ;输入
; .ref rmp2_out ;输出
; .ref rmp2_max, rmp2_min ;输入
;===========================================================================
;外部变量声明.
.def RMP2CNTL, RMP2CNTL_INIT ;函数调用
.def rmp2_dly,rmp2_desired ;输入
.def rmp2_out ;输出
.def rmp2_max, rmp2_min
;===========================================================================
.include x24x_app.h
;===========================================================================
;内部变量声明
;---------------------------------------------------------------------------
;rmp2_max .usect "rmp2cntl",1 ;输出最大值
;rmp2_min .usect "rmp2cntl",1 ;输出最小值
;rmp2_delay_cntr .usect "rmp2cntl",1 ;延迟计数器
;rmp2_dly .usect "rmp2cntl",1 ;Ramp2 延迟的系统周期数
;rmp2_desired .usect "rmp2cntl",1 ;预期值输入
;rmp2_out .usect "rmp2cntl",1 ;输出值
rmp2_max_vars .usect "rmp2cntl",6,1 ;
rmp2_max .set rmp2_max_vars+0 ;输出最大值
rmp2_min .set rmp2_max_vars+1 ;最小输出值
rmp2_delay_cntr .set rmp2_max_vars+2 ;延迟计数器
rmp2_dly .set rmp2_max_vars+3 ;Ramp2 延迟的系统周期数
rmp2_desired .set rmp2_max_vars+4 ;预期值输入
rmp2_out .set rmp2_max_vars+5 ;输出
;======================================================================
RMP2CNTL_INIT: ;初始化程序
;======================================================================
LDP #rmp2_out
SPLK #0h,rmp2_delay_cntr
SPLK #50h, rmp2_dly ;默认延迟
SPLK #0h, rmp2_out
SPLK #07ff0h, rmp2_max ;默认最大输出
SPLK #0fh, rmp2_min ;默认最小输出
RET
;===========================================================
RMP2CNTL: ;控制程序
;===========================================================
LDP #rmp2_out
LACC rmp2_out
SUB rmp2_desired
BCND done_rmp2,EQ
LACC rmp2_delay_cntr
ADD #1
SACL rmp2_delay_cntr
SUB rmp2_dly
BCND done_rmp2, LT
SPLK #0, rmp2_delay_cntr
chng_rmp2:
LACC rmp2_out
SUB rmp2_desired
BCND inc_rmp2, LT
dec_rmp2 LACC rmp2_out
SUB #1
SACL rmp2_out
SUB rmp2_min
BCND done_rmp2, GEQ
LACC rmp2_min
SACL rmp2_out
B done_rmp2
inc_rmp2 LACC rmp2_out
ADD #1
SACL rmp2_out
SUB rmp2_max
BCND done_rmp2, LEQ
LACC rmp2_max
SACL rmp2_out
done_rmp2:
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -