timer.asm
来自「本人调试TMS320C54X产生方波信号的调试程序」· 汇编 代码 · 共 54 行
ASM
54 行
.mmregs
.include "init54x.inc"
.def MAIN_START
;STACK .usect "STACK",20h
.data
TIM0 .set 0024h ;定时器0的TIM 寄存器地址
PRD0 .set 0025h ;定时器0的PRD 寄存器地址
TCR0 .set 0026h ;定时器0的TCR 寄存器地址
t0_flag .set 0060h ;定义输出判别标志
SWCR .set 2BH
.def timer0_rev
MAIN_START:
.text
; STM #K_CLKMD,CLKMD
STM #0000h,SWWSR
STM #0164h,PMST
STM #0410h,TCR0 ; TCR TSS=1 ,关断定时器0
STM #09C3h,TIM0 ;TIM0赋初值
STM #09C3h,PRD0 ;PRD0赋初值
ST #0,t0_flag
STM #07EFh,TCR0 ;ON TIM0 IN TCR TSS=0 TRB=1 TDDR=1111
STM #0008h,IFR ;TINT0=1 ,清除未处理完的定时器中断
STM #0008h,IMR ; TINT0=1 ,开放(允许)定时器中断
RSBX INTM ;开放全部中断
; RSBX XF
;jj:
; NOP
; NOP
; NOP
; B jj
; 定时器0中断服务子程序.其功能是:每定时中断一次,改变一次XF的值,使XF高低电平各持续2ms,形成T=4ms.
timer0_rev:
BITF t0_flag,#1 ; if t0_flag=1,then TC=1;else TC=0
BC xf_out,NTC ;TC=0时,执行xf_out程序段
SSBX XF ;TC=1时,XF=1
ST #0,t0_flag ;t0_flag=0,为下次XF变低电平作准备
B wait
xf_out:
RSBX XF ;TC=0,XF=0
ST #1,t0_flag ;t0_flag=1,为下次XF变高电平作准备
wait:
RETE
.end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?