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

📄 firci.asm

📁 2407实验程序在CCS环境下运行
💻 ASM
字号:
;
;File name:        FIRCIA.ASM                  
;                    
;Originator:    Digital Control Systems Group
;               Texas Instruments
;
;Description:  
;===========
; Header file containing the initialization routine for Circular buffer FIR 
; filter modules viz., FIRFILT_CGEN, FIRFILT_CORD10 & FIRFILT_CORD20
;===================================================================
; History:
;-------------------------------------------------------------------
;25-1-2000  Release Rev 1.0                                                  
;-------------------------------------------------------------------
            
            .def    _FIRFILT_CIR_init    ; Init Rouine for Circular buffer
            
                            
_FIRFILT_CIR_init:          
            POPD    *+                      ; Store the Return Address in stack        
            SAR     AR1,* 
            LAR     AR2,*+,AR2              ; ARP=AR2
            SBRK    #2                      ; ARP=AR2, AR2->FIR_MODULE_ptr 
            LAR     AR2,*                   ; ARP=AR2, AR2->coeff_ptr 
            LACL    *                       ; ARP=AR2, AR2->coeff_ptr, ACC=coeff_ptr
            ADRK    #2                      ; ARP=AR2, AR2->order
            ADDS    *                       ; ARP=AR2, AR2->order, ACC=coeff_ptr+order
            SBRK    #2                      ; ARP=AR2, AR2->coeff_ptr
            SACL    *+,0                    ; ARP=AR2, AR2->brindex, coeff_ptr=coeff_ptr+order           
            LACL    #1                      ; ACC=1
            SACL    *                       ; ARP=AR2, AR2->brindex, brindex=1
bri_loop:   LACC    *,1                     ; ARP=AR2, AR2->brindex, ACC=brindex*2
            SACL    *+                      ; ARP=AR2, AR2->order, brindex=brindex*2 
            SUB     *-                      ; ARP=AR2, AR2->brindex, ACC=brindex-order
            BCND    bri_loop,LT 
  
            LAR     AR4,*+                  ; ARP=AR2, AR2->order, AR4=brindex
            ADRK    #1                      ; ARP=AR2, AR2->dbuffer_ptr
            LAR     AR3,*+,AR4              ; ARP=AR4, AR4=order, AR3=dbuffer_ptr & AR2->input
            
            MAR     *-,AR3                  ; ARP=AR3, AR3=dbuffer_ptr, AR4=order-1
            LACL    #0                      ; ACC=0
cbloop:     SACL    *+,0,AR4                ; Clear the delay buffer
            BANZ    cbloop,*-,AR3
            
            MAR     *,AR2                   ; ARP=AR2, AR2->input 
            SACL    *+                      ; ARP=AR2, AR2->output, input=0
            SACL    *                       ; ARP=AR2, AR2->output, output=0
            SBRK    #4                      ; ARP=AR2, AR2->brindex
            LACL    *                       ; ARP=AR2, AR2->brindex, ACC=brindex
            SFR                             ; ARP=AR2, AR2->brindex, ACC=brindex/2
            SACL    *,0,AR1                 ; ARP=AR2, AR2->dbuffer_ptr, brindex=brindex/2
            SBRK    #2
            PSHD    *
            RET
            



                

                    
                    


    

⌨️ 快捷键说明

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