📄 s_motor.asm
字号:
.mmregs
.global _c_int00
.ref _Motor_init
.ref _STEP_CNRTL
SPSA2 .set 0x0034
SPSD2 .set 0x0035
SPCR1 .set 0x0000
SPCR2 .set 0x0001
PCR .set 0x000e
.text
_c_int00:
;-------------------------------------------
; 初始化DSP
;-------------------------------------------
; 关中断
SSBX INTM
RSBX CPL
NOP
NOP
; 设置堆栈
STM #0x0300,SP
; 设置中断屏蔽寄存器,开串口0收中断和中断2
STM #08h,IMR
; 清中断标志
STM 0,IFR
; 设置DP指针值,用于DP寻址高9位
LD #0h,DP
; 设置软件等待状态寄存器和块转移控制寄存器
STM 7fffh,SWWSR
STM 800h,BSCR
; 设置中断向量表首地址
LDM PMST,A
AND #7fh,0,A,A
OR #0080h,0,A,A
STLM A,PMST
;将串口2配置为通用IO口
STM #SPCR1,SPSA2
ANDM #0xfffe,SPSD2
STM #SPCR2,SPSA2
ANDM #0xfffe,SPSD2
RPT #0x1ff
NOP
STM #PCR,SPSA2
STM #0x3f00,SPSD2
;设置时钟模式寄存器,根据需要倍频
STM 0h,CLKMD
cmode: LDM CLKMD,A
AND #1h,0,A,A
BC cmode,ANEQ
STM 1207h,CLKMD
;进入直流电机控制程序
CALL _Motor_init
motor_cntrl:
CALL _STEP_CNRTL
NOP
B motor_cntrl
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -