?? test2.asm
字號(hào):
.title "test2.ASM"
.mmregs
stack .usect "stack",50
buffer .usect "buffer",0x1900
frame .usect "frame",1
flag .usect "flag",1
currbuff .usect "curbuff",1
xn .usect "xn",80
a0 .usect "a0",80
.bss xi,1
.bss y,1
.mmregs
length .set 04FFh
.global buffer,frame,flag,stack
.global currbuff
.global xi,y
.def _c_int00
.ref _init_5402
.ref _init_AD50
.include "reg.h"
.data
table: .word -5*32768/10000 ; H0----H79
.word 25*32768/10000
.word 24*32768/10000
.word -27*32768/10000
.word -55*32768/10000
.word 8*32768/10000
.word 88*32768/10000
.word 39*32768/10000
.word -103*32768/10000
.word -115*32768/10000
.word 80*32768/10000
.word 207*32768/10000
.word 7*32768/10000
.word -286*32768/10000
.word -176*32768/10000
.word 310*32768/10000
.word 445*32768/10000
.word -207*32768/10000
.word -873*32768/10000
.word -215*32768/10000
.word 1926*32768/10000
.word 3915*32768/10000
.word 3915*32768/10000
.word 1926*32768/10000
.word -215*32768/10000
.word -873*32768/10000
.word -207*32768/10000
.word 445*32768/10000
.word 310*32768/10000
.word -176*32768/10000
.word -286*32768/10000
.word 7*32768/10000
.word 207*32768/10000
.word 80*32768/10000
.word -115*32768/10000
.word -103*32768/10000
.word 39*32768/10000
.word 88*32768/10000
.word 8*32768/10000
.word -55*32768/10000
.word -27*32768/10000
.word 24*32768/10000
.word 25*32768/10000
.word -5*32768/10000
.text
_c_int00:
RSBX XF
RSBX XF
SSBX XF
SSBX INTM ;關(guān)閉所有可屏蔽中斷,INTM=1
STM #stack+50,SP
NOP
NOP
CALL _init_5402 ;初始化C5402
NOP
NOP
; ***init McBSP1(C5402有兩個(gè)MCBSP[1,2])***
STM SPCR1,MCBSP1_SPSA ;給出要修改的寄存器
STM #0000h,MCBSP1_SPSD;0021h ;修改MCBSP1_SPCR1寄存器的值為0000h
STM SPCR2,MCBSP1_SPSA
STM #0000h,MCBSP1_SPSD;0201h ;修改MCBSP1_SPCR2寄存器的值為0000h
STM RCR1,MCBSP1_SPSA
STM #0040h,MCBSP1_SPSD;16bits ;the length of frame is1.1 word per frame,the length of word is 16 bits
STM RCR2,MCBSP1_SPSA
STM #0000h,MCBSP1_SPSD
STM XCR1,MCBSP1_SPSA
STM #0040h,MCBSP1_SPSD;1 word ,16 bits
STM XCR2,MCBSP1_SPSA
STM #0000h,MCBSP1_SPSD
STM SRGR1,MCBSP1_SPSA
STM #0000000000000000b,MCBSP1_SPSD
STM SRGR2,MCBSP1_SPSA
STM #0000000000000000b,MCBSP1_SPSD
STM PCR,MCBSP1_SPSA
STM #000ch,MCBSP1_SPSD ;發(fā)送幀同步信號(hào)和發(fā)送數(shù)據(jù)均在下降沿觸發(fā)
NOP ;接受幀同步信號(hào)和發(fā)送數(shù)據(jù)均在上升 沿觸發(fā)
NOP
STM SPCR1,MCBSP1_SPSA
STM #0001h,MCBSP1_SPSD;0021h ;接收XRST=1使能
STM SPCR2,MCBSP1_SPSA
STM #0001h,MCBSP1_SPSD;0201h 發(fā)送RRST=1使能
CALL _init_AD50 ;初始化AD50
NOP
NOP
;判斷SPCR1中RRDY是否為1(接收是否準(zhǔn)備好),為1(準(zhǔn)備好)就繼續(xù)執(zhí)行(接受數(shù)據(jù)),否則死循環(huán)。
SSBX FRCT
STM #a0,AR1
RPT #43
STM #0,*AR1+
STM #xn+43,AR3
STM #a0+43,AR4
STM #-1,AR0
LOOP: STM SPCR1,MCBSP1_SPSA
LOOPR: BITF *(MCBSP1_SPSD), #0x0002
BC LOOPR, NTC
NOP
NOP
;DSP接收數(shù)據(jù)
LDM MCBSP1_DRR1, A
STL A,*AR3+0%
RPTZ A,#43
MAC *AR3+0%,*AR4+0%,B
STH B,*(y)
STM #y,AR2
LD *AR2,A
NOP
NOP
;判斷SPCR2中XRDY是否為1(發(fā)送是否準(zhǔn)備好),為1(準(zhǔn)備好)就繼續(xù)執(zhí)行(發(fā)送數(shù)據(jù)),否則死循環(huán)。
STM SPCR2,MCBSP1_SPSA
L: BITF *(MCBSP1_SPSD), #0x0002
BC L, NTC
NOP
NOP
;DSP發(fā)送數(shù)據(jù)
STLM A, MCBSP1_DXR1
NOP
NOP
B LOOP
NOP
NOP
.END
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -