📄 ist_filter.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 + -