📄 stm8_tsl_rc_singlechannelkey.ls
字号:
1 ; C Compiler for STM8 (COSMIC Software)
2 ; Generator V4.2.8 - 03 Dec 2008
3 ; Optimizer V4.2.8 - 03 Dec 2008
70 ; 46 void TSL_SCKey_Init(void)
70 ; 47 {
72 switch .text
73 0000 _TSL_SCKey_Init:
77 ; 49 for ( KeyIndex = 0; KeyIndex < NUMBER_OF_SINGLE_CHANNEL_KEYS; KeyIndex++ )
79 0000 3f00 clr _KeyIndex
80 0002 L53:
81 ; 51 TSL_SetStructPointer();
83 0002 cd0000 call _TSL_SetStructPointer
85 ; 52 pKeyStruct->State.whole = DISABLED_STATE;
87 0005 a680 ld a,#128
88 0007 92c700 ld [_pKeyStruct.w],a
89 ; 53 pKeyStruct->DetectThreshold = SCKEY_DETECTTHRESHOLD_DEFAULT;
91 000a be00 ldw x,_pKeyStruct
92 000c a60f ld a,#15
93 000e e70c ld (12,x),a
94 ; 54 pKeyStruct->EndDetectThreshold = SCKEY_ENDDETECTTHRESHOLD_DEFAULT;
96 0010 a606 ld a,#6
97 0012 e70d ld (13,x),a
98 ; 55 pKeyStruct->RecalibrationThreshold = SCKEY_RECALIBRATIONTHRESHOLD_DEFAULT;
100 0014 a6fa ld a,#250
101 0016 e70e ld (14,x),a
102 ; 49 for ( KeyIndex = 0; KeyIndex < NUMBER_OF_SINGLE_CHANNEL_KEYS; KeyIndex++ )
104 0018 3c00 inc _KeyIndex
107 001a b600 ld a,_KeyIndex
108 001c a10a cp a,#10
109 001e 25e2 jrult L53
110 ; 57 }
113 0020 81 ret
144 ; 70 void TSL_SCKEY_P1_Acquisition(void)
144 ; 71 {
145 switch .text
146 0021 _TSL_SCKEY_P1_Acquisition:
150 ; 73 sTouchIO.PORT_ADDR = (GPIO_TypeDef *) (SCKEY_P1_PORT_ADDR);
152 0021 ae500f ldw x,#20495
153 0024 bf00 ldw _sTouchIO,x
154 ; 74 for ( KeyIndex = 0; KeyIndex < SCKEY_P1_KEY_COUNT; KeyIndex++ )
156 0026 3f00 clr _KeyIndex
157 0028 L35:
158 ; 76 TSL_SetStructPointer();
160 0028 cd0000 call _TSL_SetStructPointer
162 ; 77 if ( (pKeyStruct->State.whole != ERROR_STATE) && (pKeyStruct->State.whole != DISABLED_STATE) )
164 002b 92c600 ld a,[_pKeyStruct.w]
165 002e a108 cp a,#8
166 0030 2735 jreq L16
168 0032 a180 cp a,#128
169 0034 2731 jreq L16
170 ; 79 sTouchIO.AcqMask = Table_SCKEY_BITS[KeyIndex];
172 0036 b600 ld a,_KeyIndex
173 0038 5f clrw x
174 0039 97 ld xl,a
175 003a d60000 ld a,(_Table_SCKEY_BITS,x)
176 003d b702 ld _sTouchIO+2,a
177 ; 80 sTouchIO.DriveMask = (u8)(sTouchIO.AcqMask | SCKEY_P1_DRIVEN_SHIELD_MASK);
179 003f 450203 mov _sTouchIO+3,_sTouchIO+2
180 ; 81 sTouchIO.Measurement = &sSCKeyInfo[KeyIndex].Channel.LastMeas;
182 0042 b600 ld a,_KeyIndex
183 0044 97 ld xl,a
184 0045 a60f ld a,#15
185 0047 42 mul x,a
186 0048 01 rrwa x,a
187 0049 ab05 add a,#_sSCKeyInfo+5
188 004b 5f clrw x
189 004c 97 ld xl,a
190 004d bf04 ldw _sTouchIO+4,x
191 ; 82 sTouchIO.RejectedNb = &sSCKeyInfo[KeyIndex].Channel.LastMeasRejectNb;
193 004f b600 ld a,_KeyIndex
194 0051 97 ld xl,a
195 0052 a60f ld a,#15
196 0054 42 mul x,a
197 0055 01 rrwa x,a
198 0056 ab07 add a,#_sSCKeyInfo+7
199 0058 5f clrw x
200 0059 97 ld xl,a
201 005a bf06 ldw _sTouchIO+6,x
202 ; 83 sTouchIO.Type = SCKEY_TYPE;
204 005c 3f08 clr _sTouchIO+8
205 ; 84 TSL_IO_Acquisition(SCKEY_ACQ_NUM, SCKEY_ADJUST_LEVEL);
207 005e ae0002 ldw x,#2
208 0061 a603 ld a,#3
209 0063 95 ld xh,a
210 0064 cd0000 call _TSL_IO_Acquisition
212 0067 L16:
213 ; 74 for ( KeyIndex = 0; KeyIndex < SCKEY_P1_KEY_COUNT; KeyIndex++ )
215 0067 3c00 inc _KeyIndex
218 0069 b600 ld a,_KeyIndex
219 006b a105 cp a,#5
220 006d 25b9 jrult L35
221 ; 87 }
224 006f 81 ret
255 ; 101 void TSL_SCKEY_P2_Acquisition(void)
255 ; 102 {
256 switch .text
257 0070 _TSL_SCKEY_P2_Acquisition:
261 ; 104 sTouchIO.PORT_ADDR = (GPIO_TypeDef *) (SCKEY_P2_PORT_ADDR);
263 0070 ae500f ldw x,#20495
264 0073 bf00 ldw _sTouchIO,x
265 ; 105 for ( KeyIndex = SCKEY_P1_KEY_COUNT; KeyIndex < (SCKEY_P2_KEY_COUNT + SCKEY_P1_KEY_COUNT); KeyIndex++ )
267 0075 35050000 mov _KeyIndex,#5
268 0079 L37:
269 ; 107 TSL_SetStructPointer();
271 0079 cd0000 call _TSL_SetStructPointer
273 ; 108 if ( (pKeyStruct->State.whole != ERROR_STATE) && (pKeyStruct->State.whole != DISABLED_STATE) )
275 007c 92c600 ld a,[_pKeyStruct.w]
276 007f a108 cp a,#8
277 0081 2735 jreq L101
279 0083 a180 cp a,#128
280 0085 2731 jreq L101
281 ; 110 sTouchIO.AcqMask = Table_SCKEY_BITS[KeyIndex];
283 0087 b600 ld a,_KeyIndex
284 0089 5f clrw x
285 008a 97 ld xl,a
286 008b d60000 ld a,(_Table_SCKEY_BITS,x)
287 008e b702 ld _sTouchIO+2,a
288 ; 111 sTouchIO.DriveMask = (u8)(sTouchIO.AcqMask | SCKEY_P2_DRIVEN_SHIELD_MASK);
290 0090 450203 mov _sTouchIO+3,_sTouchIO+2
291 ; 112 sTouchIO.Measurement = &sSCKeyInfo[KeyIndex].Channel.LastMeas;
293 0093 b600 ld a,_KeyIndex
294 0095 97 ld xl,a
295 0096 a60f ld a,#15
296 0098 42 mul x,a
297 0099 01 rrwa x,a
298 009a ab05 add a,#_sSCKeyInfo+5
299 009c 5f clrw x
300 009d 97 ld xl,a
301 009e bf04 ldw _sTouchIO+4,x
302 ; 113 sTouchIO.RejectedNb = &sSCKeyInfo[KeyIndex].Channel.LastMeasRejectNb;
304 00a0 b600 ld a,_KeyIndex
305 00a2 97 ld xl,a
306 00a3 a60f ld a,#15
307 00a5 42 mul x,a
308 00a6 01 rrwa x,a
309 00a7 ab07 add a,#_sSCKeyInfo+7
310 00a9 5f clrw x
311 00aa 97 ld xl,a
312 00ab bf06 ldw _sTouchIO+6,x
313 ; 114 sTouchIO.Type = SCKEY_TYPE;
315 00ad 3f08 clr _sTouchIO+8
316 ; 115 TSL_IO_Acquisition(SCKEY_ACQ_NUM, SCKEY_ADJUST_LEVEL);
318 00af ae0002 ldw x,#2
319 00b2 a603 ld a,#3
320 00b4 95 ld xh,a
321 00b5 cd0000 call _TSL_IO_Acquisition
323 00b8 L101:
324 ; 105 for ( KeyIndex = SCKEY_P1_KEY_COUNT; KeyIndex < (SCKEY_P2_KEY_COUNT + SCKEY_P1_KEY_COUNT); KeyIndex++ )
326 00b8 3c00 inc _KeyIndex
329 00ba b600 ld a,_KeyIndex
330 00bc a106 cp a,#6
331 00be 25b9 jrult L37
332 ; 118 }
335 00c0 81 ret
366 ; 133 void TSL_SCKEY_P3_Acquisition(void)
366 ; 134 {
367 switch .text
368 00c1 _TSL_SCKEY_P3_Acquisition:
372 ; 136 sTouchIO.PORT_ADDR = (GPIO_TypeDef *) (SCKEY_P3_PORT_ADDR);
374 00c1 ae500a ldw x,#20490
375 00c4 bf00 ldw _sTouchIO,x
376 ; 137 for ( KeyIndex = (SCKEY_P1_KEY_COUNT + SCKEY_P2_KEY_COUNT); KeyIndex < (SCKEY_P3_KEY_COUNT + SCKEY_P1_KEY_COUNT + SCKEY_P2_KEY_COUNT); KeyIndex++ )
378 00c6 35060000 mov _KeyIndex,#6
379 00ca L311:
380 ; 139 TSL_SetStructPointer();
382 00ca cd0000 call _TSL_SetStructPointer
384 ; 140 if ( (pKeyStruct->State.whole != ERROR_STATE) && (pKeyStruct->State.whole != DISABLED_STATE) )
386 00cd 92c600 ld a,[_pKeyStruct.w]
387 00d0 a108 cp a,#8
388 00d2 2735 jreq L121
390 00d4 a180 cp a,#128
391 00d6 2731 jreq L121
392 ; 142 sTouchIO.AcqMask = Table_SCKEY_BITS[KeyIndex];
394 00d8 b600 ld a,_KeyIndex
395 00da 5f clrw x
396 00db 97 ld xl,a
397 00dc d60000 ld a,(_Table_SCKEY_BITS,x)
398 00df b702 ld _sTouchIO+2,a
399 ; 143 sTouchIO.DriveMask = (u8)(sTouchIO.AcqMask | SCKEY_P3_DRIVEN_SHIELD_MASK);
401 00e1 450203 mov _sTouchIO+3,_sTouchIO+2
402 ; 144 sTouchIO.Measurement = &sSCKeyInfo[KeyIndex].Channel.LastMeas;
404 00e4 b600 ld a,_KeyIndex
405 00e6 97 ld xl,a
406 00e7 a60f ld a,#15
407 00e9 42 mul x,a
408 00ea 01 rrwa x,a
409 00eb ab05 add a,#_sSCKeyInfo+5
410 00ed 5f clrw x
411 00ee 97 ld xl,a
412 00ef bf04 ldw _sTouchIO+4,x
413 ; 145 sTouchIO.RejectedNb = &sSCKeyInfo[KeyIndex].Channel.LastMeasRejectNb;
415 00f1 b600 ld a,_KeyIndex
416 00f3 97 ld xl,a
417 00f4 a60f ld a,#15
418 00f6 42 mul x,a
419 00f7 01 rrwa x,a
420 00f8 ab07 add a,#_sSCKeyInfo+7
421 00fa 5f clrw x
422 00fb 97 ld xl,a
423 00fc bf06 ldw _sTouchIO+6,x
424 ; 146 sTouchIO.Type = SCKEY_TYPE;
426 00fe 3f08 clr _sTouchIO+8
427 ; 147 TSL_IO_Acquisition(SCKEY_ACQ_NUM, SCKEY_ADJUST_LEVEL);
429 0100 ae0002 ldw x,#2
430 0103 a603 ld a,#3
431 0105 95 ld xh,a
432 0106 cd0000 call _TSL_IO_Acquisition
434 0109 L121:
435 ; 137 for ( KeyIndex = (SCKEY_P1_KEY_COUNT + SCKEY_P2_KEY_COUNT); KeyIndex < (SCKEY_P3_KEY_COUNT + SCKEY_P1_KEY_COUNT + SCKEY_P2_KEY_COUNT); KeyIndex++ )
437 0109 3c00 inc _KeyIndex
440 010b b600 ld a,_KeyIndex
441 010d a10a cp a,#10
442 010f 25b9 jrult L311
443 ; 150 }
446 0111 81 ret
484 ; 164 void TSL_SCKey_Process(void)
484 ; 165 {
485 switch .text
486 0112 _TSL_SCKey_Process:
490 ; 167 TSL_SetStructPointer();
492 0112 cd0000 call _TSL_SetStructPointer
494 ; 169 TSL_DeltaCalculation();
496 0115 cd0000 call _TSL_DeltaCalculation
498 ; 171 switch ( pKeyStruct->State.whole )
500 0118 92c600 ld a,[_pKeyStruct.w]
502 ; 222 break;
503 011b 4a dec a
504 011c 274b jreq L531
505 011e 4a dec a
506 011f 271a jreq L321
507 0121 a002 sub a,#2
508 0123 272a jreq L721
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -