网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: TI德州中文网 >> 技术文库 >> C5000文章 >> TMS320C54x >> 正文
  FIR滤波器的TI54X系列DSP的实现           ★★★ 【字体:
FIR滤波器的TI54X系列DSP的实现
作者:skycanny    文章来源:德洲中文网    点击数:    更新时间:2006-11-28    
 这个程序是在去年的时候写的,现在发出来供大家参考。已经有1年没有用DSP了,感觉有点陌生了。以下是代码部分:

 

************************************************************
* This function can be called in the c programs and in the *
* assmbly programs.                                        *
************************************************************
*             filename:  fir_filter                        *
*             author:skycanny                              *
*             date:2004,11,03                              *
*             argument1:the program coffcients pointer     *
*             argument2:the data coffcients pointer        *
*             argument3:the input pointer                  *
*             argument4:the output pointer                 *
*   
************************************************************
*c syntax:                                                 *
*                   fir_filter(arg1,arg2,arg3,arg4)        *
************************************************************
************************************************************
*assembly syntax:                                        *
*                  frame -3          |return address|      *
*                  st arg2,*sp(0)    |     arg2     |<--sp *
*                  st arg3,*sp(1)    |     arg3     |      *
*                  st arg4,*sp(2)    |     arg4     |    *
*                  calld _fir_filter              *
*                  ld arg1,0,a                             *
*                  frame 3                                 *
************************************************************
_fir_filter:
           
      
        .title  "fir_filter.asm"
        .mmregs
        .include "main.inc"
        .global  _fir_filter      
      
        .text   
off_p           .set 0
off_m           .set 0
frame_size      .set off_p+11
;return address  
arg_coff_dad    .set frame_size+1   ; arguments 2
arg_in_address  .set frame_size+2   ; arguments 3
arg_out_address .set frame_size+3   ; arguments 4
  .asg AR2,COFFBUF_P 
  .asg AR3,INBUF_P 
  .asg AR4,OUTBUF_P
   NOP
   NOP
   NOP
   PSHM ST0
   PSHM ST1
   PSHM BK
   PSHM AL
   PSHM AH
   PSHM BL
   PSHM BH
   PSHM AR0
   PSHM AR2
   PSHM AR3
   PSHM AR4
 
   SSBX FRCT   
   MVDK *SP(arg_coff_dad),COFFBUF_P  
   RPT  #K_FIR_SIZE2             
   READA *COFFBUF_P+

   SSBX OVM
   STM #1,AR0 
   MVDK *SP(arg_out_address),OUTBUF_P
   RPTZ A,#K_IN_SIZE-1      
   STL  A,*OUTBUF_P+         
   NOP 
   MVDK *SP(arg_in_address),INBUF_P
   MVDK *SP(arg_out_address),OUTBUF_P
   LDM OUTBUF_P,B
   ADD #K_FIR_SIZE2,B
   STLM B,OUTBUF_P
   MVDK *SP(arg_coff_dad),COFFBUF_P
   STM #K_FIR_SIZE2,BK
   STM #K_IN_SIZE-K_FIR_SIZE2-1,BRC     
   RPTBD fir_filter_loop-1      
   NOP
   NOP
   LD #0,A
   RPT #K_FIR_SIZE2
   MAC  *COFFBUF_P+,*INBUF_P+,A
  ;计算前向通道        
  ;将计算结果保存至预留区中  
   STH A,*OUTBUF_P+  
  ;系数归位
   MVDK *SP(arg_coff_dad),COFFBUF_P
  ;将输入的地址指向下一次的开始位置
   LDM INBUF_P,B
   ADD #-K_FIR_SIZE2,B
   STLM B,INBUF_P      
fir_filter_loop:
   NOP
   POPM AR4
   POPM AR3
   POPM AR2
   POPM AR0
   POPM BH
   POPM BL
   POPM AH
   POPM AL
   POPM BK
   POPM ST1
   POPM ST0
   NOP
   RET 
*************************************
   .end

欢迎点击进入:"61IC中国电子在线"官方网站     文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    在CCS下编写的FIR滤波器产生
    DSP在电力监控装置中的应用研
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:TC 湘ICP备06016957号