📄 touch sensor.lst
字号:
HI-TECH Software PICC Macro Assembler V9.60PL2
Sun Jan 04 11:02:51 2009
1 processor 16F886
2 opt pw 79
3 psect strings,global,class=STRING,delta=2
4 psect const1,local,class=CONST,delta=2
5 psect const2,local,class=CONST,delta=2
6 psect text1,local,class=CODE,delta=2
7 psect intcode,global,class=CODE,delta=2
8 psect intsave_0,global,ovrld,class=COMBANK,spa
+ ce=1,delta=1
9 psect intret,global,class=CODE,delta=2
10 psect intentry,global,class=CODE,delta=2
11 psect intsave,global,class=BANK0,space=1,delta
+ =1
12 psect text4,local,class=CODE,delta=2
13 psect text5,local,class=CODE,delta=2
14 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
15 psect rbss_2,global,class=BANK2,space=1,delta=
+ 1
16 psect rbss_3,global,class=BANK3,space=1,delta=
+ 1
17 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24 0000
25 0000
26 0000
27 0000
28
29 psect const1
30 1814 0782 addwf 2
31 1815 _Comp1
32 1815 3494 retlw -108
33 1816 3495 retlw -107
34
35 psect const2
36 1811 0782 addwf 2
37 1812 _Comp2
38 1812 34A0 retlw -96
39 1813 34A1 retlw -95
40
41 psect intcode
42 002B _isr
43 002B int_func
44 ;Touch Sensor.c: 78: void interrupt isr(void)
45 002B 190B btfsc 11,2
46 002C 1E8B btfss 11,5
47 002D 2836 goto l8
48 ;Touch Sensor.c: 84: TMR1ON = 0;
49 002E 1283 bcf 3,5
50 002F 1303 bcf 3,6 ;carry unused
51 0030 1010 bcf 16,0
52 ;Touch Sensor.c: 87: CapISR();
53 0031 160A 158A 2726 fcall _CapISR
+ 120A 118A
54 0036 l8
55 ;Touch Sensor.c: 88: }
56 0036 1D0B btfss 11,2
57 0037 283D goto l7
58 ;Touch Sensor.c: 93: RestartTimers();
59 0038 160A 158A 26AB fcall _RestartTimers
+ 120A 118A
60 ;Touch Sensor.c: 97: }
61 003D l7
62 003D 1303 bcf 3,6 ;carry unused
63 003E 1283 bcf 3,5
64
65 psect intsave_0
66 0073 saved_w
saved_w
67 0073 ds 1
68
69 psect intret
70 005D 085B movf saved_fsr,w
71 005E 0084 movwf 4 ;restore FSR
72 005F 085C movf saved_pclath,w
73 0060 008A movwf 10
74 0061 int_restore
75 0061 085A movf saved_status,w
76 0062 0083 movwf 3
77 0063 0EF3 swapf saved_w
78 0064 0E73 swapf saved_w,w
79 0065 0009 retfie
80
81 psect intentry
82 0004 int_entry
83 0004 00F3 movwf saved_w
84 0005 0803 movf 3,w
85 0006 0183 clrf 3
86 0007 00DA movwf saved_status
87 0008 0804 movf 4,w
88 0009 00DB movwf saved_fsr
89 000A 080A movf 10,w
90 000B 00DC movwf saved_pclath
91 000C 018A clrf 10
92
93 psect intsave
94 005A saved_status
saved_status
95 005A ds 1
96 005B saved_fsr
saved_fsr
97 005B ds 1
98 005C saved_pclath
saved_pclath
99 005C ds 1
100
101 psect text4
102 1EAB _RestartTimers
103 ;Touch Sensor.c: 165: void
104 1EAB 0183 clrf 3 ;select bank 0
105 1EAC 018E clrf 14 ;volatile
106 ;Touch Sensor.c: 169: TMR1H = 0;
107 1EAD 018F clrf 15 ;volatile
108 ;Touch Sensor.c: 170: TMR1ON = 1;
109 1EAE 1410 bsf 16,0
110 ;Touch Sensor.c: 171: TMR0 = 0;
111 1EAF 0181 clrf 1 ;volatile
112 ;Touch Sensor.c: 172: T0IF = 0;
113 1EB0 110B bcf 11,2
114 ;Touch Sensor.c: 173: }
115 1EB1 0008 return ;W free
116 1EB2 _CapInit
117 ;Touch Sensor.c: 25: void
118 1EB2 1683 bsf 3,5
119 1EB3 1303 bcf 3,6 ;carry unused
120 1EB4 1305 bcf 5,6
121 ;Touch Sensor.c: 28: TRISA7=0;
122 1EB5 1385 bcf 5,7
123 ;Touch Sensor.c: 29: RA7=0;
124 1EB6 1283 bcf 3,5
125 1EB7 1385 bcf 5,7
126 ;Touch Sensor.c: 30: RA6=0;
127 1EB8 1305 bcf 5,6
128 ;Touch Sensor.c: 32: for (Index=0; Index < 2; I
+ ndex++) {
129 1EB9 01B5 clrf _Index ;volatile
130 1EBA 2EC6 goto l6
131 1EBB l3
132 ;Touch Sensor.c: 36: Average[Index] = 1325;
133 1EBB 0835 movf _Index,w ;volatile
134 1EBC 0735 addwf _Index,w ;volatile
135 1EBD 3E12 addlw _Average^(0+256)
136 1EBE 0084 movwf 4
137 1EBF 1783 bsf 3,7
138 1EC0 302D movlw 45
139 1EC1 0080 movwf 0
140 1EC2 0A84 incf 4
141 1EC3 3005 movlw 5
142 1EC4 0080 movwf 0
143 1EC5 0AB5 incf _Index ;volatile
144 1EC6 l6
145 1EC6 3002 movlw 2
146 1EC7 0235 subwf _Index,w ;volatile
147 1EC8 1C03 btfss 3,0
148 1EC9 2EBB goto l3
149 ;Touch Sensor.c: 40: }
150 1ECA 3087 movlw 135
151 1ECB 1683 bsf 3,5
152 1ECC 1703 bsf 3,6
153 1ECD 0090 movwf _Trip^(0+384)
154 1ECE 0191 clrf (_Trip+1)^(0+384)
155 ;Touch Sensor.c: 42: Trip[1] = 160;
156 1ECF 30A0 movlw 160
157 1ED0 0092 movwf (_Trip+2)^(0+384)
158 1ED1 0193 clrf (_Trip+3)^(0+384)
159 ;Touch Sensor.c: 44: First = 160;
160 1ED2 30A0 movlw -96
161 1ED3 1283 bcf 3,5
162 1ED4 1303 bcf 3,6 ;carry unused
163 1ED5 00B4 movwf _First ;volatile
164 ;Touch Sensor.c: 45: Index=0;
165 1ED6 01B5 clrf _Index ;volatile
166 ;Touch Sensor.c: 50: VRCON=0X8D;
167 1ED7 308D movlw -115
168 1ED8 1683 bsf 3,5
169 1ED9 0097 movwf 23
170 ;Touch Sensor.c: 53: RA2=0;
171 1EDA 1283 bcf 3,5
172 1EDB 1105 bcf 5,2
173 ;Touch Sensor.c: 55: TRISA5 = 0;
174 1EDC 1683 bsf 3,5
175 1EDD 1285 bcf 5,5
176 ;Touch Sensor.c: 56: TRISC0=1;
177 1EDE 1407 bsf 7,0
178 ;Touch Sensor.c: 57: TRISA0 = 1;
179 1EDF 1405 bsf 5,0
180 ;Touch Sensor.c: 58: TRISA2 = 1;
181 1EE0 1505 bsf 5,2
182 ;Touch Sensor.c: 61: ANSEL=0X27;
183 1EE1 3027 movlw 39
184 1EE2 1703 bsf 3,6
185 1EE3 0088 movwf 8
186 ;Touch Sensor.c: 62: ANSELH=0X00;
187 1EE4 0189 clrf 9
188 ;Touch Sensor.c: 63: CM1CON0 = Comp1[0];
189 1EE5 160A 158A 2015 fcall _Comp1
190 1EE8 1283 bcf 3,5
191 1EE9 0087 movwf 7 ;volatile
192 ;Touch Sensor.c: 64: CM2CON0 = Comp2[0];
193 1EEA 160A 158A 2012 fcall _Comp2
+ 160A 158A
194 1EEF 0088 movwf 8 ;volatile
195 ;Touch Sensor.c: 65: CM2CON1=0X32;
196 1EF0 3032 movlw 50
197 1EF1 0089 movwf 9 ;volatile
198 ;Touch Sensor.c: 66: SRCON=0XF0;
199 1EF2 30F0 movlw -16
200 1EF3 1683 bsf 3,5
201 1EF4 0085 movwf 5 ;volatile
202 ;Touch Sensor.c: 69: T1CON=0X07;
203 1EF5 3007 movlw 7
204 1EF6 1283 bcf 3,5
205 1EF7 1303 bcf 3,6 ;carry unused
206 1EF8 0090 movwf 16
207 ;Touch Sensor.c: 70: OPTION = 0x84;
208 1EF9 3084 movlw -124
209 1EFA 1683 bsf 3,5
210 1EFB 0081 movwf 1
211 ;Touch Sensor.c: 72: RestartTimers();
212 1EFC 26AB fcall _RestartTimers
213 ;Touch Sensor.c: 74: INTCON = 0;
214 1EFD 018B clrf 11 ;volatile
215 ;Touch Sensor.c: 75: T0IE = 1;
216 1EFE 168B bsf 11,5
217 ;Touch Sensor.c: 76: GIE=1;
218 1EFF 178B bsf 11,7
219 ;Touch Sensor.c: 77: }
220 1F00 0008 return ;W free
221 1F01 _SetNextSensor
222 ;Touch Sensor.c: 146: void
223 1F01 3002 movlw 2
224 1F02 0183 clrf 3 ;select bank 0
225 1F03 0235 subwf _Index,w ;volatile
226 1F04 1803 btfsc 3,0
227 1F05 2F08 goto l28
228 ;Touch Sensor.c: 152: Index++;
229 1F06 0AB5 incf _Index ;volatile
230 1F07 2F09 goto l29
231 1F08 l28
232 ;Touch Sensor.c: 153: else
233 1F08 01B5 clrf _Index ;volatile
234 1F09 l29
235 ;Touch Sensor.c: 156: if (Index == 0) {
236 1F09 0835 movf _Index,w ;volatile
237 1F0A 1D03 btfss 3,2
238 1F0B 2F17 goto l30
239 ;Touch Sensor.c: 157: CM1CON0 = Comp1[0];
240 1F0C 160A 158A 2015 fcall _Comp1
241 1F0F 1703 bsf 3,6
242 1F10 0087 movwf 7 ;volatile
243 ;Touch Sensor.c: 158: CM2CON0 = Comp2[0];
244 1F11 160A 158A 2012 fcall _Comp2
+ 160A 158A
245 1F16 2F23 goto L1
246 ;Touch Sensor.c: 159: } else {
247 1F17 l30
248 ;Touch Sensor.c: 160: CM1CON0 = Comp1[1];
249 1F17 3018 movlw _Comp1 shr (0+8)
250 1F18 008A movwf 10
251 1F19 3001 movlw 1
252 1F1A 2014 call ((_Comp1+-1)& (0+2047))| (($)& (0+-2048))
253 1F1B 1703 bsf 3,6
254 1F1C 0087 movwf 7 ;volatile
255 ;Touch Sensor.c: 161: CM2CON0 = Comp2[1];
256 1F1D 3018 movlw _Comp2 shr (0+8)
257 1F1E 008A movwf 10
258 1F1F 3001 movlw 1
259 1F20 2011 call ((_Comp2+-1)& (0+2047))| (($)& (0+-2048))
260 1F21 160A 158A pagesel $
261 1F23 L1
262 1F23 0088 movwf 8 ;volatile
263 ;Touch Sensor.c: 162: }
264 1F24 1303 bcf 3,6 ;carry unused
265 1F25 0008 return ;W free
266 1F26 _CapISR
267 ; _AvgIndex assigned to ?a_CapISR+0
268 0000 _CapISR$AvgIndex set ?a_CapISR
269 ; _Value assigned to ?a_CapISR+1
270 0000 _CapISR$Value set ?a_CapISR+1
271 ;Touch Sensor.c: 103: void
272 1F26 0183 clrf 3 ;select bank 0
273 1F27 080F movf 15,w ;volatile
274 1F28 00D5 movwf ?a_CapISR+2
275 1F29 080E movf 14,w ;volatile
276 1F2A 00D4 movwf ?a_CapISR+1
277 ;Touch Sensor.c: 115: Raw =Value;
278 1F2B 1703 bsf 3,6
279 1F2C 0090 movwf _Raw^(0+256)
280 1F2D 1303 bcf 3,6 ;carry unused
281 1F2E 0855 movf ?a_CapISR+2,w
282 1F2F 1703 bsf 3,6
283 1F30 0091 movwf (_Raw+1)^(0+256)
284 ;Touch Sensor.c: 116: if (Raw <(Average[Index]-
+ Trip[Index])) {
285 1F31 1303 bcf 3,6 ;carry unused
286 1F32 0835 movf _Index,w ;volatile
287 1F33 0735 addwf _Index,w ;volatile
288 1F34 3E90 addlw _Trip^(0+256)
289 1F35 0084 movwf 4
290 1F36 1783 bsf 3,7
291 1F37 0800 movf 0,w
292 1F38 00F4 movwf btemp
293 1F39 0A84 incf 4
294 1F3A 0800 movf 0,w
295 1F3B 00F5 movwf btemp+1
296 1F3C 0874 movf btemp,w
297 1F3D 00D6 movwf ?a_CapISR+3
298 1F3E 0875 movf btemp+1,w
299 1F3F 00D7 movwf ?a_CapISR+4
300 1F40 0835 movf _Index,w ;volatile
301 1F41 0735 addwf _Index,w ;volatile
302 1F42 3E12 addlw _Average^(0+256)
303 1F43 0084 movwf 4
304 1F44 1783 bsf 3,7
305 1F45 0800 movf 0,w
306 1F46 00F4 movwf btemp
307 1F47 0A84 incf 4
308 1F48 0800 movf 0,w
309 1F49 00F5 movwf btemp+1
310 1F4A 0856 movf ?a_CapISR+3,w
311 1F4B 02F4 subwf btemp
312 1F4C 1C03 btfss 3,0
313 1F4D 03F5 decf btemp+1
314 1F4E 0857 movf ?a_CapISR+4,w
315 1F4F 02F5 subwf btemp+1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -