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

📄 ist_filter.lst

📁 DSP关于F2407的实例程序
💻 LST
字号:
C:\tic2xx\c2000\cgtools\bin\dspa.exe IST_FILTER.asm IST_FILTER.obj -gls -v2xx 

TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Wed Jun  8 17:23:50 2005
Copyright (c) 1987-1999  Texas Instruments Incorporated 
IST_FILTER.asm                                                       PAGE    1

       1            ;===================================================================== 
       2            ; File name     :       IST_FILTER.asm
       3            ; Module Name   :       FILTER
       4            ; Description   :       防脉冲平均值滤波器
       5            ;       
       6            ;
       7            ;                       |~~~~~~~~~~~~~~~|
       8            ;                       |               |
       9            ;       IST0    o---->  |     FILTER    |----->o FILTER_RESULT
      10            ;  (FILTER_Y1-6)      |               |
      11            ;                       |______________ |
      12            ; 2004.9.22
      13            ;===================================================================== 
      14                            .include "f2407.h"
      15                            
      16                            .global FILTER,FILTER_INIT              ;function call
      17                            
      18                            .global IST0                            ;input
      19                            .global FILTER_Y1,FILTER_Y2,FILTER_Y3,FILTER_Y4,FILTER_Y5,FILTER_Y6
      20                            .global TEMP,FILTER_RESULT,FILTER_MAX,FILTER_MIN,FILTER_COUNT
      21                            
      22            ;===================================================================== 
      23 0000       FILTER_INIT:
      24            ;===================================================================== 
      25 0000 bc04                  LDP     #DP_DATA
      26 0001 ae00!                 SPLK    #0,FILTER_COUNT 
         0002 0000  
      27 0003 ae00!                 SPLK    #0,FILTER_RESULT                
         0004 0000  
      28 0005 ef00                  RET
      29            ;===================================================================== 
      30 0006       FILTER:
      31            ;=====================================================================          
      32 0006 bf00                  SPM     0
      33 0007 be47                  SETC    SXM                     
      34            ;-----------------------------------------------------------
      35 0008 bc04                  LDP     #DP_DATA
      36 0009 1000!                 LACC    IST0
      37 000a 9000!                 SACL    FILTER_Y1       ;IST0暂存到FILTER_Y1
      38            ;-------------
      39            ;判断是否10个值都有。
      40 000b 1000!                 LACC    FILTER_COUNT                    
      41 000c ba04                  SUB     #4
      42 000d e304                  BCND    FILTER_CAL,GT
         000e 0013' 
      43 000f b805                  ADD     #5              
      44 0010 9000!                 SACL    FILTER_COUNT    ;否则加1(已经减6,所以加7)
      45 0011 7980                  B       END_FILTER
         0012 0041' 
      46            ; 计算FILTER_MAX
      47 0013 1000! FILTER_CAL:     LACC    FILTER_Y1
      48 0014 9000!                 SACL    FILTER_MAX      ;Y1最大,ACC=Y1
      49 0015 3000!                 SUB     FILTER_Y2
      50 0016 e304                  BCND    NEXT1,GT        ;FILTER_Y1>FILTER_Y2时跳到NEXT1
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Wed Jun  8 17:23:50 2005
Copyright (c) 1987-1999  Texas Instruments Incorporated 
IST_FILTER.asm                                                       PAGE    2

         0017 001a' 
      51 0018 1000!                 LACC    FILTER_Y2
      52 0019 9000!                 SACL    FILTER_MAX      ;Y2最大,ACC=Y2
      53 001a       NEXT1:          
      54 001a 1000!                 LACC    FILTER_MAX
      55 001b 3000!                 SUB     FILTER_Y3
      56 001c e304                  BCND    NEXT2,GT        ;FILTER_MAX>FILTER_Y3时跳到NEXT2
         001d 0020' 
      57 001e 1000!                 LACC    FILTER_Y3
      58 001f 9000!                 SACL    FILTER_MAX      ;Y3最大
      59 0020       NEXT2:
      60 0020 1000!                 LACC    FILTER_MAX
      61 0021 3000!                 SUB     FILTER_Y4
      62 0022 e304                  BCND    NEXT3,GT        ;FILTER_MAX>FILTER_Y4时跳到NEXT3
         0023 0026' 
      63 0024 1000!                 LACC    FILTER_Y4
      64 0025 9000!                 SACL    FILTER_MAX      ;Y4最大
      65            ;       NEXT7:          
      66            ;                       LACC    FILTER_MAX
      67            ;                       SUB     FILTER_Y5
      68            ;                       BCND    NEXT8,GT        ;FILTER_MAX>FILTER_Y5时跳
      69            ;                       LACC    FILTER_Y5
      70            ;                       SACL    FILTER_MAX      ;Y5最大 
      71            ;;      NEXT8:          
      72            ;                       LACC    FILTER_MAX
      73            ;                       SUB     FILTER_Y6
      74            ;                       BCND    NEXT3,GT        ;FILTER_MAX>FILTER_Y6时跳
      75            ;                       LACC    FILTER_Y6
      76            ;                       SACL    FILTER_MAX      ;Y6最大 
      77                    
      78            ; 计算FILTER_MIN                
      79 0026       NEXT3:
      80 0026 1000!                 LACC    FILTER_Y1
      81 0027 9000!                 SACL    FILTER_MIN      ;Y1最小
      82 0028 3000!                 SUB     FILTER_Y2
      83 0029 e344                  BCND    NEXT4,LT        ;FILTER_Y2>FILTER_Y1时跳转
         002a 002d' 
      84 002b 1000!                 LACC    FILTER_Y2
      85 002c 9000!                 SACL    FILTER_MIN      ;Y2最小
      86 002d       NEXT4:          
      87 002d 1000!                 LACC    FILTER_MIN
      88 002e 3000!                 SUB     FILTER_Y3
      89 002f e344                  BCND    NEXT5,LT        ;FILTER_Y3>FILTER_MIN时跳
         0030 0033' 
      90 0031 1000!                 LACC    FILTER_Y3
      91 0032 9000!                 SACL    FILTER_MIN      ;Y3最小
      92 0033       NEXT5:
      93 0033 1000!                 LACC    FILTER_MIN
      94 0034 3000!                 SUB     FILTER_Y4
      95 0035 e344                  BCND    NEXT6,LT        ;FILTER_Y4>FILTER_MIN时跳
         0036 0039' 
      96 0037 1000!                 LACC    FILTER_Y4
      97 0038 9000!                 SACL    FILTER_MIN      ;Y4最小
      98            ;       NEXT9:
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Wed Jun  8 17:23:50 2005
Copyright (c) 1987-1999  Texas Instruments Incorporated 
IST_FILTER.asm                                                       PAGE    3

      99            ;                       LACC    FILTER_MIN
     100            ;                       SUB     FILTER_Y5
     101            ;                       BCND    NEXT10,LT       ;FILTER_Y5>FILTER_MIN时跳
     102            ;                       LACC    FILTER_Y5
     103            ;                       SACL    FILTER_MIN      ;Y5最小
     104            ;       NEXT10:
     105            ;                       LACC    FILTER_MIN
     106            ;                       SUB     FILTER_Y6
     107            ;                       BCND    NEXT6,LT        ;FILTER_Y6>FILTER_MIN时跳
     108            ;                       LACC    FILTER_Y6
     109            ;                       SACL    FILTER_MIN      ;Y6最小                                 
     110            ;---------------
     111 0039       NEXT6:  
     112 0039 1000!                 LACC    FILTER_Y1
     113 003a 2000!                 ADD     FILTER_Y2
     114 003b 2000!                 ADD     FILTER_Y3
     115 003c 2000!                 ADD     FILTER_Y4
     116                    ;       ADD     FILTER_Y5
     117                    ;       ADD     FILTER_Y6
     118 003d 3000!                 SUB     FILTER_MAX
     119 003e 3000!                 SUB     FILTER_MIN
     120                    ;       SFR
     121 003f be0a                  SFR                     ;算术右移一位,相当于除2。
     122 0040 9000!                 SACL    FILTER_RESULT   ;滤波结果。
     123            ;---------------
     124            ;把Y值前移。
     125 0041       END_FILTER:
     126                    ;       LACC    FILTER_Y5
     127                    ;       SACL    FILTER_Y6
     128                    ;       LACC    FILTER_Y4
     129                    ;       SACL    FILTER_Y5
     130 0041 1000!                 LACC    FILTER_Y3
     131 0042 9000!                 SACL    FILTER_Y4
     132 0043 1000!                 LACC    FILTER_Y2
     133 0044 9000!                 SACL    FILTER_Y3
     134 0045 1000!                 LACC    FILTER_Y1
     135 0046 9000!                 SACL    FILTER_Y2
     136            ;---------------------------------------------------------------------------            
     137 0047 bf00                  SPM     0
     138 0048 be47                  SETC    SXM
     139 0049 ef00                  RET     
     140                    

 No Errors,  No Warnings

⌨️ 快捷键说明

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