⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 init_des.asm

📁 《DSP集成开发环境-CCS及DSP/BIOS的原理与应用》
💻 ASM
字号:
     .title "DES5410PP-U init..."
     
     .global	_init_des,is_send_data,AD_Buffer
     .global is_new_data,DA_Buffer,transmit,receive,_timer
     .mmregs
gpiocr    .set      3ch
gpiosr    .set      3dh

dxr10     .set      23h
drr10     .set      21h
spsa0     .set      38h
spcr10    .set      39h
spcr20    .set      39h
xcr10     .set      39h
pcr0      .set      39h

dxr11     .set      43h
spsa1     .set      48h
spcr11    .set      49h
spcr21    .set      49h
xcr11     .set      49h
pcr1      .set      49h
srgr1     .set      49h
srgr2     .set      49h
swcr      .set      2bh
;bscr	  .set	    29h
;--------------------------------------------------------------------------------                             
; same global variable in 0x60 - 0x7f !
; use address maybe start from 0x70!, the 60h -6fh are reserved for DES5402PP-U !
;--------------------------------------------------------------------------------
mcbsp_init	.set	071h
mcbsp_reg	.set 	072h

;-------------------------------------------------------------------------
     
     .text
     
_init_des: 
     pshm st0
     pshm st1
               
     ssbx intm           ; close all int ! (ssbx intm)
     ssbx sxm            ; extend sign !
     ssbx frct           ; faction multiply
     rsbx cpl			 ; cpl=0, use DP !

     ld   #0,dp          ; dp=0 
     stm  #0ffffh,ifr    ; clear all int !
;     andm #0ffcfh,imr	 ; clear BXINT0 & BRINT0
;     orm  #20h,imr       ; bit5->BXINT0, bit4->BRINT0, enable BXINT0
	 stm	#20h,imr	 ; only enable BXINT0 !
	 
     stm  #02h,29h
     stm  #0,swcr
;/*------------------------------------------------------------------------
;  The following codes switch to 100MHz clock !
;-------------------------------------------------------------------------*/
	 nop
	 nop

;***********************************************************************
; initalize RAM, Variable....
;***********************************************************************
     stm  #60h,ar0      	; 60h -> ar0
     xor  a,a  			; 0 -> a
     rpt  #17h			; clear 60h-78h to 0
     stlm a,*ar0+

     stm  #0aa55h,mcbsp_init  	; when mcbsp_init==0xaa55, transmit for init ac01
;******************************************************************
; The following codes are used to initalize McBSP0 !
;******************************************************************
     stm  #0,spsa0       ; choose SPCR10
     stm  #2000h,spcr10  ; receive sign_extend in DRR
     stm  #1,spsa0       ; choose SPCR20
     stm  #0c0h,spcr20   ; fs -> int !
     stm  #2,spsa0       ; choose RCR10
     stm  #40h,39h
     stm  #3,spsa0       ; choose RCR20
     stm  #0,39h
     stm  #4,spsa0       ; choose XCR10
     stm  #40h,xcr10
     stm  #5,spsa0       ; choose XCR20
     stm  #0,39h
     stm  #0eh,spsa0     ; choose PCR0
     stm  #0dh,pcr0      ; fs is low active, rise edge of clkx, falling edge
                         ; of clkr
     stm  #7h,spsa0
     stm  #8000h,39h

     rpt  #0fffh
     nop

     stm  #00h,dxr10
     ldm  22h,a

     stm  #1,38h
     stm  #0c1h,39h      ; start McBSP0 send !

     ld   #603h,a
     rsbx intm           ; enable all int !
;----------------------------------------------------------------------
; The following codes are initalized AC01, ALL AC01 setup same !
;----------------------------------------------------------------------
     idle 1
     idle 1
     idle 1
     idle 1              ; reset two AC01 by software !

     stm   #600h,mcbsp_reg
     idle 1               ; wait for int .....
     stm   #3,mcbsp_reg
     idle 1              ; send #3
     stm   #00119h,mcbsp_reg      ; fs=10M/2/A/B= 8k
                         ; flp=10M/2/40/A= 5k (all pass)
                         ; fhp=fs/200= 125Hz  (not use !)
                         ; A=25(0x19),B=25(0x19)
     idle 1              ; send 1th regs -> 19h
     stm   #3,mcbsp_reg
     idle 1              ; send #3
     stm   #00219h,mcbsp_reg
     idle 1              ; send 2th regs -> 19h
     stm   #3,mcbsp_reg
     idle 1              ; send #3
     stm   #00300h,mcbsp_reg
     idle 1              ; send 3th regs -> 00h
     stm   #3,mcbsp_reg
     idle 1              ; send #3
     stm   #00405h,mcbsp_reg
     idle 1              ; send 4th regs -> 05h (AD & DA 0 dB)
     stm   #3,mcbsp_reg
     idle 1              ; send #3
     stm   #00505h,mcbsp_reg
     idle 1              ; send 5th regs -> 05h (highpass filter disable)
     stm   #3,mcbsp_reg
     idle 1              ; send #3
     stm   #00600h,mcbsp_reg
     idle 1              ; send 6th regs -> 00h
     stm   #3,mcbsp_reg
     idle 1              ; send #3
     stm   #00700h,mcbsp_reg
     idle 1              ; send 7th regs -> 0
     stm   #3,mcbsp_reg
     idle 1              ; send #3
     stm   #800h,mcbsp_reg
     idle 1              ; send 8th regs -> 0
     stm   #0h,mcbsp_reg

     stm  #0,38h
     stm  #2001h,39h     ; start MCbsp0 receive !
;******************************************************************************

     orm  #38h,imr       ; bit5->BXINT0, bit4->BRINT0, enable BXINT0 & BRINT0 & TIMER0

     popm st1
     popm st0
     
     ret		; return and intm=0 disable all int !
;*********************************************************************
;  The following codes are serived for McBSP0' transmit !
;*********************************************************************


;********************************************************************
;  The following codes are serived for McBSP0' receive ! use AR5,BK!
;*********************************************************************


;********************************************************************
;  The following codes are serived for vc5402' TIMER !
;*********************************************************************

_pc_uartint:
_mcu_uartint:
__ret
     rete
     
     .end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -