网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: TI德州中文网 >> 技术文库 >> C2000文章 >> C28X >> 正文
  利用汇编语言进行F2812编程实现FFT分析常用的库文件-4           ★★★ 【字体:
利用汇编语言进行F2812编程实现FFT分析常用的库文件-4
作者:D003    文章来源:本站原创    点击数:    更新时间:2007-3-1    

rfft32m.asm

;============================================================================
;
; File Name     : rfft_magc.asm
;
; Originator    : Advanced Embeeded Control
;                 Texas Instruments
;
; Description   : This file contains source code to compute the magnitude square
;                 of complex spectral bins for Real FFT modules  
;              
; Date          : 26/2/2002 (dd/mm/yyyy)
;===========================================================================   
; Routine Type  : C Callable       
;
; Description   :
; void FFTR_win(FFTxxxR_handle)
; This function computes magnitude square of the complex spectral bins, produced by
; the Real FFT modules. Allows in-place and off-place storage of the magnitude square results.
;======================================================================
; REAL FFT MODULES
;----------------------------------------------------------------------
;typedef struct {  
;       long *ipcbptr;
;       long *tfptr;              
;       int size;
;       int nrstage;            
;       long *magptr;
;       long *winptr;
;       long peakmag;
;       int peakfrq;
;       int ratio;    
;       void (*init)(void);
;       void (*calc)(void *);
;       void (*split)(void *);
;       void (*mag)(void *);
;       void (*win)(void *);
;       }FFTxxxR;
;======================================================================

                .def   _RFFT32_mag    ;
           
_RFFT32_mag:

            SETC    SXM
           
            MOVL    XAR7,*XAR4      ; XAR5=ipcbptr
            MOVL    XAR6,*+XAR4[6]  ; XAR6=magptr
           
            MOVZ    AR0,*+XAR4[4]   ; AR7=size
MAG_LP:    
            ZAPA                    ; ACC=0, P=0
            QMACL   P,*XAR7,*XAR7++ ; Q15*Q15=Q30
            QMACL   P,*XAR7,*XAR7++ ; Q15*Q15+Q30=Q30
            ADDL    ACC,P
            MOVL    *XAR6++,ACC     ; Store in Q30
            BANZ    MAG_LP,AR0--
           
; Find maximum magnitude
            ADDB    XAR4,#4         ; XAR4->size
            MOVB    ACC,#0
            MOVL    *+XAR4[6],ACC   ; peakmag=0
            MOVZ    AR0,*XAR4       ; AR0=size
            MOVL    XAR5,*+XAR4[2]  ; XAR5=magptr

            MOV     ACC,#0

;Find the maximum value among the FFT Magnitudes   
            RPT     AR0
            || MAXL ACC,*XAR5++
           
            MOVL    *+XAR4[6],ACC   ; update peak magnitude
            MOVB    XAR7,#0         ; XAR7=0
            MOVL    XAR5,*+XAR4[2]  ; XAR5=magptr
;Find the spectral bin corresponding to maximum magnitude. 
NEXT_BIN:              
            MAXL    ACC,*XAR5++
            NOP     *XAR7++
            SBF     NEXT_BIN,NEQ   
           
            NOP     *--XAR7
            ADDB    XAR4,#8         ; XAR4->peakfrq
            MOV     *XAR4,AR7       ; update peak magnitude    
            LRETR     

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

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    F2812开发板:2812EVM-III开发
    用来测试TI公司TMS320F281X芯
    利用汇编语言进行F2812编程实
    利用汇编语言进行F2812编程实
    利用汇编语言进行F2812编程实
    利用汇编语言进行F2812编程实
    利用汇编语言进行F2812编程实
    利用汇编语言进行F2812编程实
    TMS320F2812的延时程序
    关于TMS320LF2407异步串行例
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:TC 湘ICP备06016957号