📄 stm8_tsl_rc_singlechannelkey.ls
字号:
1 ; C Compiler for STM8 (COSMIC Software)
2 ; Parser V4.8.32.1 - 30 Mar 2010
3 ; Generator V4.3.4 - 23 Mar 2010
80 ; 46 void TSL_SCKey_Init(void)
80 ; 47 {
82 switch .text
83 0000 _TSL_SCKey_Init:
87 ; 49 for ( KeyIndex = 0; KeyIndex < NUMBER_OF_SINGLE_CHANNEL_KEYS; KeyIndex++ )
89 0000 3f00 clr _KeyIndex
90 0002 L53:
91 ; 51 TSL_SetStructPointer();
93 0002 cd0000 call _TSL_SetStructPointer
95 ; 52 pKeyStruct->State.whole = DISABLED_STATE;
97 0005 a680 ld a,#128
98 0007 92c700 ld [_pKeyStruct.w],a
99 ; 53 pKeyStruct->DetectThreshold = SCKEY_DETECTTHRESHOLD_DEFAULT;
101 000a be00 ldw x,_pKeyStruct
102 000c a61e ld a,#30
103 000e e70c ld (12,x),a
104 ; 54 pKeyStruct->EndDetectThreshold = SCKEY_ENDDETECTTHRESHOLD_DEFAULT;
106 0010 be00 ldw x,_pKeyStruct
107 0012 a612 ld a,#18
108 0014 e70d ld (13,x),a
109 ; 55 pKeyStruct->RecalibrationThreshold = SCKEY_RECALIBRATIONTHRESHOLD_DEFAULT;
111 0016 be00 ldw x,_pKeyStruct
112 0018 a6ee ld a,#238
113 001a e70e ld (14,x),a
114 ; 49 for ( KeyIndex = 0; KeyIndex < NUMBER_OF_SINGLE_CHANNEL_KEYS; KeyIndex++ )
116 001c 3c00 inc _KeyIndex
119 001e b600 ld a,_KeyIndex
120 0020 a103 cp a,#3
121 0022 25de jrult L53
122 ; 57 }
125 0024 81 ret
156 ; 70 void TSL_SCKEY_P1_Acquisition(void)
156 ; 71 {
157 switch .text
158 0025 _TSL_SCKEY_P1_Acquisition:
162 ; 73 sTouchIO.PORT_ADDR = (GPIO_TypeDef *) (SCKEY_P1_PORT_ADDR);
164 0025 ae5005 ldw x,#20485
165 0028 bf00 ldw _sTouchIO,x
166 ; 74 for ( KeyIndex = 0; KeyIndex < SCKEY_P1_KEY_COUNT; KeyIndex++ )
168 002a 3f00 clr _KeyIndex
169 002c L35:
170 ; 76 TSL_SetStructPointer();
172 002c cd0000 call _TSL_SetStructPointer
174 ; 77 if ( (pKeyStruct->State.whole != ERROR_STATE) && (pKeyStruct->State.whole != DISABLED_STATE) )
176 002f 92c600 ld a,[_pKeyStruct.w]
177 0032 a108 cp a,#8
178 0034 2737 jreq L16
180 0036 92c600 ld a,[_pKeyStruct.w]
181 0039 a180 cp a,#128
182 003b 2730 jreq L16
183 ; 79 sTouchIO.AcqMask = Table_SCKEY_BITS[KeyIndex];
185 003d b600 ld a,_KeyIndex
186 003f 5f clrw x
187 0040 97 ld xl,a
188 0041 d60000 ld a,(_Table_SCKEY_BITS,x)
189 0044 b702 ld _sTouchIO+2,a
190 ; 80 sTouchIO.DriveMask = (u8)(sTouchIO.AcqMask | SCKEY_P1_DRIVEN_SHIELD_MASK);
192 0046 b602 ld a,_sTouchIO+2
193 0048 aa80 or a,#128
194 004a b703 ld _sTouchIO+3,a
195 ; 81 sTouchIO.Measurement = &sSCKeyInfo[KeyIndex].Channel.LastMeas;
197 004c b600 ld a,_KeyIndex
198 004e 97 ld xl,a
199 004f a60f ld a,#15
200 0051 42 mul x,a
201 0052 1c0005 addw x,#_sSCKeyInfo+5
202 0055 bf04 ldw _sTouchIO+4,x
203 ; 82 sTouchIO.RejectedNb = &sSCKeyInfo[KeyIndex].Channel.LastMeasRejectNb;
205 0057 b600 ld a,_KeyIndex
206 0059 97 ld xl,a
207 005a a60f ld a,#15
208 005c 42 mul x,a
209 005d 1c0007 addw x,#_sSCKeyInfo+7
210 0060 bf06 ldw _sTouchIO+6,x
211 ; 83 sTouchIO.Type = SCKEY_TYPE;
213 0062 3f08 clr _sTouchIO+8
214 ; 84 TSL_IO_Acquisition(SCKEY_ACQ_NUM, SCKEY_ADJUST_LEVEL);
216 0064 ae0002 ldw x,#2
217 0067 a601 ld a,#1
218 0069 95 ld xh,a
219 006a cd0000 call _TSL_IO_Acquisition
221 006d L16:
222 ; 74 for ( KeyIndex = 0; KeyIndex < SCKEY_P1_KEY_COUNT; KeyIndex++ )
224 006d 3c00 inc _KeyIndex
227 006f b600 ld a,_KeyIndex
228 0071 a103 cp a,#3
229 0073 25b7 jrult L35
230 ; 87 }
233 0075 81 ret
271 ; 164 void TSL_SCKey_Process(void)
271 ; 165 {
272 switch .text
273 0076 _TSL_SCKey_Process:
277 ; 167 TSL_SetStructPointer();
279 0076 cd0000 call _TSL_SetStructPointer
281 ; 169 TSL_DeltaCalculation();
283 0079 cd0000 call _TSL_DeltaCalculation
285 ; 171 switch ( pKeyStruct->State.whole )
287 007c 92c600 ld a,[_pKeyStruct.w]
289 ; 222 break;
290 007f 4a dec a
291 0080 2751 jreq L57
292 0082 4a dec a
293 0083 271a jreq L36
294 0085 a002 sub a,#2
295 0087 272d jreq L76
296 0089 a004 sub a,#4
297 008b 2759 jreq L77
298 008d a009 sub a,#9
299 008f 273d jreq L37
300 0091 a003 sub a,#3
301 0093 271c jreq L56
302 0095 a010 sub a,#16
303 0097 2730 jreq L17
304 0099 a05c sub a,#92
305 009b 274e jreq L101
306 009d L721:
308 009d 20fe jra L721
309 009f L36:
310 ; 174 case IDLE_STATE:
310 ; 175 if ( TSL_SCKey_CheckErrorCondition() )
312 009f cd024a call _TSL_SCKey_CheckErrorCondition
314 00a2 4d tnz a
315 00a3 2705 jreq L121
316 ; 177 TSL_SCKey_SetErrorState();
318 00a5 cd0000 call _TSL_SCKey_SetErrorState
320 ; 178 break;
322 00a8 2044 jra L711
323 00aa L121:
324 ; 180 TSL_SCKey_IdleTreatment( );
326 00aa ad5f call _TSL_SCKey_IdleTreatment
328 ; 181 TSL_SCKey_CheckDisabled( );
330 00ac cd022a call _TSL_SCKey_CheckDisabled
332 ; 182 break;
334 00af 203d jra L711
335 00b1 L56:
336 ; 184 case PRE_DETECTED_STATE:
336 ; 185 TSL_SCKey_PreDetectTreatment( );
338 00b1 cd0146 call _TSL_SCKey_PreDetectTreatment
340 ; 186 break;
342 00b4 2038 jra L711
343 00b6 L76:
344 ; 188 case DETECTED_STATE:
344 ; 189 if ( TSL_SCKey_CheckErrorCondition() )
346 00b6 cd024a call _TSL_SCKey_CheckErrorCondition
348 00b9 4d tnz a
349 00ba 2705 jreq L321
350 ; 191 TSL_SCKey_SetErrorState();
352 00bc cd0000 call _TSL_SCKey_SetErrorState
354 ; 192 break;
356 00bf 202d jra L711
357 00c1 L321:
358 ; 194 TSL_SCKey_DetectedTreatment( );
360 00c1 cd0174 call _TSL_SCKey_DetectedTreatment
362 ; 195 TSL_SCKey_CheckDisabled( );
364 00c4 cd022a call _TSL_SCKey_CheckDisabled
366 ; 196 break;
368 00c7 2025 jra L711
369 00c9 L17:
370 ; 198 case POST_DETECTED_STATE:
370 ; 199 TSL_SCKey_PostDetectTreatment( );
372 00c9 cd019f call _TSL_SCKey_PostDetectTreatment
374 ; 200 break;
376 00cc 2020 jra L711
377 00ce L37:
378 ; 202 case PRE_CALIBRATION_STATE:
378 ; 203 TSL_SCKey_PreRecalibrationTreatment( );
380 00ce cd01c9 call _TSL_SCKey_PreRecalibrationTreatment
382 ; 204 break;
384 00d1 201b jra L711
385 00d3 L57:
386 ; 206 case CALIBRATION_STATE:
386 ; 207 if ( TSL_SCKey_CheckErrorCondition() )
388 00d3 cd024a call _TSL_SCKey_CheckErrorCondition
390 00d6 4d tnz a
391 00d7 2705 jreq L521
392 ; 209 TSL_SCKey_SetErrorState();
394 00d9 cd0000 call _TSL_SCKey_SetErrorState
396 ; 210 break;
398 00dc 2010 jra L711
399 00de L521:
400 ; 212 TSL_SCKey_CalibrationTreatment( );
402 00de cd01f3 call _TSL_SCKey_CalibrationTreatment
404 ; 213 TSL_SCKey_CheckDisabled( );
406 00e1 cd022a call _TSL_SCKey_CheckDisabled
408 ; 214 break;
410 00e4 2008 jra L711
411 00e6 L77:
412 ; 216 case ERROR_STATE:
412 ; 217 TSL_SCKey_CheckDisabled( );
414 00e6 cd022a call _TSL_SCKey_CheckDisabled
416 ; 218 break;
418 00e9 2003 jra L711
419 00eb L101:
420 ; 220 case DISABLED_STATE:
420 ; 221 TSL_SCKey_CheckEnabled( );
422 00eb cd0236 call _TSL_SCKey_CheckEnabled
424 ; 222 break;
426 00ee L711:
427 ; 232 TSL_TempGlobalSetting.whole |= pKeyStruct->Setting.whole;
429 00ee be00 ldw x,_pKeyStruct
430 00f0 ee01 ldw x,(1,x)
431 00f2 01 rrwa x,a
432 00f3 ba01 or a,_TSL_TempGlobalSetting+1
433 00f5 01 rrwa x,a
434 00f6 ba00 or a,_TSL_TempGlobalSetting
435 00f8 01 rrwa x,a
436 00f9 bf00 ldw _TSL_TempGlobalSetting,x
437 ; 233 TSL_TempGlobalState.whole |= pKeyStruct->State.whole;
439 00fb b600 ld a,_TSL_TempGlobalState
440 00fd 92ca00 or a,[_pKeyStruct.w]
441 0100 b700 ld _TSL_TempGlobalState,a
442 ; 234 pKeyStruct->Setting.b.CHANGED = 0;
444 0102 be00 ldw x,_pKeyStruct
445 0104 e602 ld a,(2,x)
446 0106 a4f7 and a,#247
447 0108 e702 ld (2,x),a
448 ; 236 }
451 010a 81 ret
481 ; 249 void TSL_SCKey_IdleTreatment(void)
481 ; 250 {
482 switch .text
483 010b _TSL_SCKey_IdleTreatment:
487 ; 252 if (pKeyStruct->Channel.LastMeasRejectNb > MAX_REJECTED_MEASUREMENTS)
489 010b be00 ldw x,_pKeyStruct
490 010d e607 ld a,(7,x)
491 010f a115 cp a,#21
492 0111 2501 jrult L341
493 ; 254 return;
496 0113 81 ret
497 0114 L341:
498 ; 258 if ( Delta <= pKeyStruct->RecalibrationThreshold )
500 0114 9c rvf
501 0115 be00 ldw x,_pKeyStruct
502 0117 e60e ld a,(14,x)
503 0119 5f clrw x
504 011a 4d tnz a
505 011b 2a01 jrpl L41
506 011d 53 cplw x
507 011e L41:
508 011e 97 ld xl,a
509 011f b300 cpw x,_Delta
510 0121 2f04 jrslt L541
511 ; 260 TSL_SCKey_SetPreRecalibrationState( );
513 0123 cd0000 call _TSL_SCKey_SetPreRecalibrationState
515 ; 261 return;
518 0126 81 ret
519 0127 L541:
520 ; 266 if ( Delta >= pKeyStruct->DetectThreshold )
522 0127 9c rvf
523 0128 be00 ldw x,_pKeyStruct
524 012a e60c ld a,(12,x)
525 012c 5f clrw x
526 012d 4d tnz a
527 012e 2a01 jrpl L61
528 0130 53 cplw x
529 0131 L61:
530 0131 97 ld xl,a
531 0132 b300 cpw x,_Delta
532 0134 2c0f jrsgt L741
533 ; 271 TSL_SCKey_SetPreDetectState( );
535 0136 cd0000 call _TSL_SCKey_SetPreDetectState
537 ; 272 if ( !DetectionIntegrator )
539 0139 725d0000 tnz _DetectionIntegrator
540 013d 2606 jrne L741
541 ; 274 pKeyStruct->Channel.IntegratorCounter++;
543 013f be00 ldw x,_pKeyStruct
544 0141 6c0a inc (10,x)
545 ; 275 TSL_SCKey_PreDetectTreatment( );
547 0143 ad01 call _TSL_SCKey_PreDetectTreatment
549 0145 L741:
550 ; 279 }
553 0145 81 ret
582 ; 292 void TSL_SCKey_PreDetectTreatment(void)
582 ; 293 {
583 switch .text
584 0146 _TSL_SCKey_PreDetectTreatment:
588 ; 296 if ((pKeyStruct->Channel.LastMeasRejectNb <= MAX_REJECTED_MEASUREMENTS) &&
588 ; 297 (Delta >= pKeyStruct->DetectThreshold))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -