门关键词: profibus连接器 低压复合绝缘子 光驱的原理 诺基亚耳机 断电延时继电器原理 电感式传感器原理 电缆浮球开关
IC库存(8958万) PDF资料(329万) IC价格 IC求购 资讯 技术资料
电子元器件搜索:
维库电子市场网是知名的电子元器件交易网站,为电子生产企业提供IC库存和技术资料查询服务。
TMS320VC5402滤波器实验代码
新闻出处:嵌入式技术网 发布时间: 2007-11-15

************************************************
* FileName:  ex10.asm                       *
* Description: 滤波器实验                     *
* Copyright(C) SanZhi Electronic, Author Zpin  *
************************************************

  .title "ex10"

BSP   .set  1  ;当前使用McBsp1

;McBsp 内存映射寄存器
SPSA0  .set    038h
SPSD0  .set    039h
DRR10  .set    021h
DRR20  .set 020h
DXR10  .set    023h
DXR20  .set 022h

SPSA1  .set    048h
SPSD1       .set    049h
DRR11       .set 041h
DRR21       .set    040h
DXR11       .set    043h
DXR21       .set 042h

SPSA2       .set    034h
SPSD2       .set    035h
DRR12       .set    031h
DRR22       .set 030h
DXR12       .set    033h
DXR22       .set 032h

;McBsp Subaddressed Registers
SPCR1  .set 00h
SPCR2  .set 01h
RCR1  .set 02h
RCR2  .set 03h
XCR1  .set 04h
XCR2  .set 05h
SRGR1  .set 06h
SRGR2  .set 07h
MCR1  .set 08h
MCR2  .set 09h
RCERA  .set 0ah
RCERB  .set 0bh
XCERA  .set 0ch
XCERB  .set 0dh
PCR   .set 0eh

  .if BSP = 0
SPSA .set SPSA0
SPSD .set SPSD0
RDRR .set DRR10
RDXR .set DXR10
IMASK .set 0010h
  .endif
  
  .if BSP = 1
SPSA .set SPSA1
SPSD .set SPSD1
RDRR .set DRR11
RDXR .set DXR11
IMASK .set 0400h
  .endif
  
;fin_flag  .set  64h

 .asg AR0,FIR_INDEX_P
 .asg AR4,FIR_DATA_P
 .asg AR5,FIR_COFF_P

WR_SUB_REG .macro val,addr   ;写McBsp控制寄存器
   stm addr,SPSA
   nop
   stm val,SPSD
   nop
   .endm
   
RD_SUB_REG .macro addr,acc   ;读McBsp控制寄存器
   stm #:addr:,SPSA
   nop
   ldm SPSD,acc
   nop
   nop
   nop
   .endm

WAITTRX   .macro     ;等待串口中断
WAITR?
        RD_SUB_REG SPCR1,A
        and #1<<1, A
        bc   WAITR?, AEQ
          .endm

PROGREG   .macro progword   ;与AD50二次通讯
    
   stm  #01h,RDXR
        WAITTRX
        stm     #:progword:,RDXR
        WAITTRX
          .endm              


wait   .macro
    STM #0008h, AR2
  RPT *AR2
  NOP
  .endm    

  .mmregs
  .global _c_int00


  .sect ".vectors"
RESET b _c_int00
  nop
  nop
  .space 19*4*16
BRINT0 b recv
  nop
  nop
BXINT0 b trans
  nop
  nop
  .space 4*4*16
BRINT1 b recv
  nop
  nop
BXINT1 b trans
  nop
  nop
  .space 4*4*16
  
K_FIR_BFFR  .set 16

coff_fir_table .sect "coff_fir"
 .word 6fh,0f3h,269h,50dh,8a9h,0c99h,0ff8h,11ebh,11ebh,0ff8h,0c99h,8a9h,50dh,269h,0f3h,64h
 ;.word 42,0,-78,0,142,0,-235,0,357,0,-235,0,142,0,-78,0 
d_data_buffer .usect "fir_bfr",40

  .text
_c_int00
  ld #0h,DP
  stm #7ffh,SP
  ssbx INTM
  ssbx SXM
        st #2491h,SWWSR
        st #0ffe0h,PMST
        ;st #0f287h,CLKMD
       
  ST #0h,CLKMD
tst: BITF CLKMD,#1h
  BC tst,TC
  ST #1087h,CLKMD
  BITF CLKMD,#1h
  RPT #0FFh
  NOP
       
       
        stm #5000h,ar7
        stm #5000h,ar6
  
fir_init
  stm #1,AR0
  stm #coff_fir_table,FIR_COFF_P
  stm #d_data_buffer,FIR_DATA_P
  rptz A,#K_FIR_BFFR
  stl A,*FIR_DATA_P
  stm #(d_data_buffer+K_FIR_BFFR-1),FIR_DATA_P
  stm #K_FIR_BFFR,BK

       
mcbsp_init       ;初始化McBsp串口
        rsbx CPL
  nop                 ; cpl latency
  nop                 ; cpl latency
  nop                 ; cpl latency

  ld #0,DP
  ssbx INTM
  ssbx SXM

  WR_SUB_REG #0000H,SPCR1
  WR_SUB_REG #0200H,SPCR2
  WR_SUB_REG #000CH,PCR
  
  WR_SUB_REG #0000H,SPCR1
  WR_SUB_REG #0000H,SPCR2
  
  WR_SUB_REG #0040H,RCR1  ;16 BITs
  WR_SUB_REG #0004H,RCR2  ;Ignore FS after the first
  WR_SUB_REG #0040H,XCR1  ;16 BITs
  WR_SUB_REG #0004H,XCR2  ;Ignore FS after the first

  ld 100,A
  wait

  andm #0ff3fh, 54h   ;set interrupts to come from serial ports not DMA
         ;by clearing bits 6 and 7 in DMPREC
  stm #0,RDXR
  
  WR_SUB_REG #0001H,SPCR1  ;启动McBsp串口
  WR_SUB_REG #0201H,SPCR2
  
  ld 100,A
  wait
  

aic_init
  stm #0h,IMR
  orm IMASK,IMR
  stm #0ffffh,IFR

  ;PROGREG 0180H    ;二次通讯初始化AD50
  ;PROGREG 02C0H
  PROGREG 0301h
  PROGREG 0410h
  ;PROGREG 0000001100000001b
        ;           876543210
        ;PROGREG 0000010000010000b
        ;          876543210

  ld RDRR,A
  ld RDRR,A
  
  stlm A,RDXR
  stlm A,RDXR
  
  rsbx INTM
  nop
  nop
  nop
  
js  nop
  nop
  nop
  b js

recv ldm RDRR,A    ;ADC采样数据经滤波后发送到DAC输出
  stl A,*FIR_DATA_P+0%
  rptz A,(K_FIR_BFFR-1)
  mac *FIR_DATA_P+0%,*FIR_COFF_P+0%,A
  andm #0fffeh,ah
  sth A,RDXR
  rsbx XF
  rete
  
trans rsbx XF
  rete
  .end


关闭】 【打印
 
相关专题
 
友情链接:
© 2007 电子元件网 网站地图