📄 macro.h54
字号:
;******************************************************************************
; SJTU DSP Tech. Center
; Copyright (c) 2002 SJTU DSP Tech. Center. All Rights Reserved.
; History:
; Date Authors Changes
; 2003/08/30 Fu Xuan Created.
; 2007/09/23 Chen Yu Changed.
;******************************************************************************
.mmregs
;LED0 shines if port_addr is USER_REG
LED0_ON .macro port_addr
portr port_addr, *(AL)
or #0x0001, A ;USERLED0=1
portw *(AL), port_addr
.endm ;end of LED0_ON
LED1_ON .macro port_addr
portr port_addr, *(AL)
or #0x0002, A
portw *(AL), port_addr
.endm
LED2_ON .macro port_addr
portr port_addr, *(AL)
or #0x0004, A
portw *(AL), port_addr
.endm
LED3_ON .macro port_addr
portr port_addr, *(AL)
or #0x0008, A
portw *(AL), port_addr
.endm
;set RRST/XRST to enable McBSP
McBSP2_ENABLE .macro aux_reg
stm #SPSA2, aux_reg ;McBSP1子地址寄存器
st #0, *aux_reg+ ;选中控制寄存器SPCR12
orm #0x0001, *aux_reg- ;/RRST=1接收部分使能
st #1, *aux_reg+ ;选中控制寄存器SPCR22
orm #0x0001, *aux_reg- ;/XRST=1发送部分使能
.endm ;end of McBSP1_ENABLE
;reset RRST/XRST to disable McBSP
McBSP2_DISABLE .macro aux_reg
stm #SPSA1, aux_reg ;McBSP1子地址寄存器
st #0, *aux_reg+ ;选中控制寄存器SPCR11
andm #0xfffe, *aux_reg- ;/RRST=0接收部分复位
st #1, *aux_reg+ ;选中控制寄存器SPCR21
andm #0xfffe, *aux_reg- ;/XRST=0发送部分复位
.endm ;end of McBSP1_DISABLE
;enable channel channel_number of DMA
CHANNEL_ENABLE .macro channel_number
ldm DMPREC, A
or channel_number, A
stlm A, DMPREC
.endm ;end of CHANNEL_ENABLE
;set cntl1 to let 3 LEDs shine, then shuts after a while if port_addr is CNTL1
LEDS_CHECK .macro port_addr
;check LED0, LED1, LED2 and LED3
portr port_addr, *(AL)
or #0x000F, A ;USR_LED0=USR_LED1=USR_LED2=USR_LED3=1
portw *(AL), port_addr ;LED0, LED1, LED2 and LED3 shine
stm #50, AR1
delay_out_loop:
stm #1000, BRC
rptb delay_inner_loop-1
rpt #1000
nop
delay_inner_loop:
banz delay_out_loop, *AR1- ;shine for a while
portr port_addr, *(AL)
and #0xFFF0, A ;USR_LED0=USR_LED1=USR_LED2=USR_LED3=0
portw *(AL), port_addr ;LED0, LED1, LED2 and LED3 shut
stm #50, AR1
delay_out_loop1:
stm #1000, BRC
rptb delay_inner_loop1-1
rpt #1000
nop
delay_inner_loop1:
banz delay_out_loop1, *AR1- ;shut for a while
.endm ;end of LEDS_CHECK
;end of macro.h54
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -