?? stm8_tsl_multichannelkey.ls
字號:
1 ; C Compiler for STM8 (COSMIC Software)
2 ; Parser V4.9.2 - 29 Jun 2010
3 ; Generator V4.3.5 - 02 Jul 2010
49 .const: section .text
50 0000 _MCKEY1_TABLE_POSITION_OFFSET:
51 0000 0000 dc.w 0
52 0002 ffc0 dc.w -64
53 0004 0000 dc.w 0
54 0006 0000 dc.w 0
55 0008 0000 dc.w 0
56 000a 0015 dc.w 21
57 000c 0000 dc.w 0
58 000e ff95 dc.w -107
59 0010 0000 dc.w 0
60 0012 0000 dc.w 0
61 0014 0000 dc.w 0
62 0016 0040 dc.w 64
63 0018 0000 dc.w 0
64 001a ff6b dc.w -149
65 001c 0000 dc.w 0
66 001e 0000 dc.w 0
67 0020 0000 dc.w 0
68 0022 006b dc.w 107
69 0024 0000 dc.w 0
70 0026 ff40 dc.w -192
71 0028 0000 dc.w 0
72 002a 0000 dc.w 0
73 002c 0000 dc.w 0
74 002e 0095 dc.w 149
75 0030 0000 dc.w 0
109 ; 918 void TSL_MCKey_Init(void)
109 ; 919 {
111 switch .text
112 0000 _TSL_MCKey_Init:
116 ; 921 for (KeyIndex = 0; KeyIndex < NUMBER_OF_MULTI_CHANNEL_KEYS; KeyIndex++)
118 0000 3f00 clr _KeyIndex
119 0002 L53:
120 ; 923 TSL_MCKey_SetStructPointer();
122 0002 cd0000 call _TSL_MCKey_SetStructPointer
124 ; 924 pMCKeyStruct->State.whole = DISABLED_STATE;
126 0005 a680 ld a,#128
127 0007 92c700 ld [_pMCKeyStruct.w],a
128 ; 925 pMCKeyStruct->DetectThreshold = MCKEY_DETECTTHRESHOLD_DEFAULT;
130 000a be00 ldw x,_pMCKeyStruct
131 000c a616 ld a,#22
132 000e e72a ld (42,x),a
133 ; 926 pMCKeyStruct->EndDetectThreshold = MCKEY_ENDDETECTTHRESHOLD_DEFAULT;
135 0010 be00 ldw x,_pMCKeyStruct
136 0012 a623 ld a,#35
137 0014 e72b ld (43,x),a
138 ; 927 pMCKeyStruct->RecalibrationThreshold = MCKEY_RECALIBRATIONTHRESHOLD_DEFAULT;
140 0016 be00 ldw x,_pMCKeyStruct
141 0018 a680 ld a,#128
142 001a e72c ld (44,x),a
143 ; 928 pMCKeyStruct->Resolution = MCKEY_RESOLUTION_DEFAULT;
145 001c be00 ldw x,_pMCKeyStruct
146 001e a604 ld a,#4
147 0020 e72d ld (45,x),a
148 ; 929 pMCKeyStruct->DirectionChangeIntegrator = MCKEY_DIRECTION_CHANGE_INTEGRATOR_DEFAULT;
150 0022 be00 ldw x,_pMCKeyStruct
151 0024 a601 ld a,#1
152 0026 e72e ld (46,x),a
153 ; 930 pMCKeyStruct->DirectionChangeThreshold = MCKEY_DIRECTION_CHANGE_THRESHOLD_DEFAULT;
155 0028 be00 ldw x,_pMCKeyStruct
156 002a a60a ld a,#10
157 002c e72f ld (47,x),a
158 ; 921 for (KeyIndex = 0; KeyIndex < NUMBER_OF_MULTI_CHANNEL_KEYS; KeyIndex++)
160 002e 3c00 inc _KeyIndex
163 0030 3d00 tnz _KeyIndex
164 0032 27ce jreq L53
165 ; 934 sMCKeyInfo[0].Setting.b.MCKEY_TYPE = MCKEY1_TYPE;
167 0034 72120001 bset _sMCKeyInfo+1,#1
168 ; 939 }
171 0038 81 ret
204 ; 951 void TSL_MCKey1_Acquisition(void)
204 ; 952 {
205 switch .text
206 0039 _TSL_MCKey1_Acquisition:
210 ; 954 KeyIndex = 0;
212 0039 3f00 clr _KeyIndex
213 ; 955 TSL_MCKey_SetStructPointer();
215 003b cd0000 call _TSL_MCKey_SetStructPointer
217 ; 971 if (!((pMCKeyStruct->State.whole == ERROR_STATE) || (pMCKeyStruct->State.whole == DISABLED_STATE)))
219 003e 92c600 ld a,[_pMCKeyStruct.w]
220 0041 a108 cp a,#8
221 0043 2754 jreq L35
223 0045 92c600 ld a,[_pMCKeyStruct.w]
224 0048 a180 cp a,#128
225 004a 274d jreq L35
226 ; 973 for (ChannelIndex = 0; ChannelIndex < CHANNEL_PER_MCKEY; ChannelIndex++)
228 004c 3f00 clr _ChannelIndex
229 004e L55:
230 ; 975 sTouchIO.PORT_ADDR = (GPIO_TypeDef *)(Table_MCKEY_PORTS[ChannelIndex]);
232 004e b600 ld a,_ChannelIndex
233 0050 5f clrw x
234 0051 97 ld xl,a
235 0052 58 sllw x
236 0053 de0000 ldw x,(_Table_MCKEY_PORTS,x)
237 0056 bf00 ldw _sTouchIO,x
238 ; 976 sTouchIO.AcqMask = Table_MCKEY_BITS[ChannelIndex];
240 0058 b600 ld a,_ChannelIndex
241 005a 5f clrw x
242 005b 97 ld xl,a
243 005c d60000 ld a,(_Table_MCKEY_BITS,x)
244 005f b702 ld _sTouchIO+2,a
245 ; 977 sTouchIO.DriveMask = (u8)(sTouchIO.AcqMask | MCKEY1_DRIVEN_SHIELD_MASK);
247 0061 b602 ld a,_sTouchIO+2
248 0063 aa02 or a,#2
249 0065 b703 ld _sTouchIO+3,a
250 ; 978 sTouchIO.Measurement = &sMCKeyInfo[0].Channel[ChannelIndex].LastMeas;
252 0067 b600 ld a,_ChannelIndex
253 0069 97 ld xl,a
254 006a a607 ld a,#7
255 006c 42 mul x,a
256 006d 01 rrwa x,a
257 006e ab05 add a,#_sMCKeyInfo+5
258 0070 2401 jrnc L01
259 0072 5c incw x
260 0073 L01:
261 0073 5f clrw x
262 0074 97 ld xl,a
263 0075 bf04 ldw _sTouchIO+4,x
264 ; 979 sTouchIO.RejectedNb = &sMCKeyInfo[0].Channel[ChannelIndex].LastMeasRejectNb;
266 0077 b600 ld a,_ChannelIndex
267 0079 97 ld xl,a
268 007a a607 ld a,#7
269 007c 42 mul x,a
270 007d 01 rrwa x,a
271 007e ab07 add a,#_sMCKeyInfo+7
272 0080 2401 jrnc L21
273 0082 5c incw x
274 0083 L21:
275 0083 5f clrw x
276 0084 97 ld xl,a
277 0085 bf06 ldw _sTouchIO+6,x
278 ; 980 sTouchIO.Type = MCKEY_TYPE;
280 0087 35010008 mov _sTouchIO+8,#1
281 ; 981 TSL_IO_Acquisition(MCKEY_ACQ_NUM, MCKEY_ADJUST_LEVEL);
283 008b ae0601 ldw x,#1537
284 008e cd0000 call _TSL_IO_Acquisition
286 ; 973 for (ChannelIndex = 0; ChannelIndex < CHANNEL_PER_MCKEY; ChannelIndex++)
288 0091 3c00 inc _ChannelIndex
291 0093 b600 ld a,_ChannelIndex
292 0095 a105 cp a,#5
293 0097 25b5 jrult L55
294 0099 L35:
295 ; 986 }
298 0099 81 ret
335 ; 1048 void TSL_MCKey_Process(void)
335 ; 1049 {
336 switch .text
337 009a _TSL_MCKey_Process:
341 ; 1051 TSL_MCKey_SetStructPointer();
343 009a cd0000 call _TSL_MCKey_SetStructPointer
345 ; 1053 switch (pMCKeyStruct->State.whole)
347 009d 92c600 ld a,[_pMCKeyStruct.w]
349 ; 1103 break;
350 00a0 4a dec a
351 00a1 2751 jreq L57
352 00a3 4a dec a
353 00a4 271a jreq L36
354 00a6 a002 sub a,#2
355 00a8 272d jreq L76
356 00aa a004 sub a,#4
357 00ac 2759 jreq L77
358 00ae a009 sub a,#9
359 00b0 273d jreq L37
360 00b2 a003 sub a,#3
361 00b4 271c jreq L56
362 00b6 a010 sub a,#16
363 00b8 2730 jreq L17
364 00ba a05c sub a,#92
365 00bc 274e jreq L101
366 00be L721:
368 00be 20fe jra L721
369 00c0 L36:
370 ; 1055 case IDLE_STATE:
370 ; 1056 if (TSL_MCKey_CheckErrorCondition())
372 00c0 cd06ae call _TSL_MCKey_CheckErrorCondition
374 00c3 4d tnz a
375 00c4 2705 jreq L121
376 ; 1058 TSL_MCKey_SetErrorState();
378 00c6 cd0000 call _TSL_MCKey_SetErrorState
380 ; 1059 break;
382 00c9 2044 jra L711
383 00cb L121:
384 ; 1061 TSL_MCKey_IdleTreatment();
386 00cb ad67 call _TSL_MCKey_IdleTreatment
388 ; 1062 TSL_MCKey_CheckDisabled();
390 00cd cd068e call _TSL_MCKey_CheckDisabled
392 ; 1063 break;
394 00d0 203d jra L711
395 00d2 L56:
396 ; 1065 case PRE_DETECTED_STATE:
396 ; 1066 TSL_MCKey_PreDetectTreatment();
398 00d2 cd019f call _TSL_MCKey_PreDetectTreatment
400 ; 1067 break;
402 00d5 2038 jra L711
403 00d7 L76:
404 ; 1069 case DETECTED_STATE:
404 ; 1070 if (TSL_MCKey_CheckErrorCondition())
406 00d7 cd06ae call _TSL_MCKey_CheckErrorCondition
408 00da 4d tnz a
409 00db 2705 jreq L321
410 ; 1072 TSL_MCKey_SetErrorState();
412 00dd cd0000 call _TSL_MCKey_SetErrorState
414 ; 1073 break;
416 00e0 202d jra L711
417 00e2 L321:
418 ; 1075 TSL_MCKey_DetectedTreatment();
420 00e2 cd01f2 call _TSL_MCKey_DetectedTreatment
422 ; 1076 TSL_MCKey_CheckDisabled();
424 00e5 cd068e call _TSL_MCKey_CheckDisabled
426 ; 1077 break;
428 00e8 2025 jra L711
429 00ea L17:
430 ; 1079 case POST_DETECTED_STATE:
430 ; 1080 TSL_MCKey_PostDetectTreatment();
432 00ea cd0245 call _TSL_MCKey_PostDetectTreatment
434 ; 1081 break;
436 00ed 2020 jra L711
437 00ef L37:
438 ; 1083 case PRE_CALIBRATION_STATE:
438 ; 1084 TSL_MCKey_PreRecalibrationTreatment();
440 00ef cd0292 call _TSL_MCKey_PreRecalibrationTreatment
442 ; 1085 break;
444 00f2 201b jra L711
445 00f4 L57:
446 ; 1087 case CALIBRATION_STATE:
446 ; 1088 if (TSL_MCKey_CheckErrorCondition())
448 00f4 cd06ae call _TSL_MCKey_CheckErrorCondition
450 00f7 4d tnz a
451 00f8 2705 jreq L521
452 ; 1090 TSL_MCKey_SetErrorState();
454 00fa cd0000 call _TSL_MCKey_SetErrorState
456 ; 1091 break;
458 00fd 2010 jra L711
459 00ff L521:
460 ; 1093 TSL_MCKey_CalibrationTreatment();
462 00ff cd02df call _TSL_MCKey_CalibrationTreatment
464 ; 1094 TSL_MCKey_CheckDisabled();
466 0102 cd068e call _TSL_MCKey_CheckDisabled
468 ; 1095 break;
470 0105 2008 jra L711
471 0107 L77:
472 ; 1097 case ERROR_STATE:
472 ; 1098 TSL_MCKey_CheckDisabled();
474 0107 cd068e call _TSL_MCKey_CheckDisabled
476 ; 1099 break;
478 010a 2003 jra L711
479 010c L101:
480 ; 1101 case DISABLED_STATE:
480 ; 1102 TSL_MCKey_CheckEnabled();
482 010c cd069a call _TSL_MCKey_CheckEnabled
484 ; 1103 break;
486 010f L711:
487 ; 1112 TSL_TempGlobalSetting.whole |= pMCKeyStruct->Setting.whole;
489 010f be00 ldw x,_pMCKeyStruct
490 0111 ee01 ldw x,(1,x)
491 0113 01 rrwa x,a
492 0114 ba01 or a,_TSL_TempGlobalSetting+1
493 0116 01 rrwa x,a
494 0117 ba00 or a,_TSL_TempGlobalSetting
495 0119 01 rrwa x,a
496 011a bf00 ldw _TSL_TempGlobalSetting,x
497 ; 1113 TSL_TempGlobalState.whole |= pMCKeyStruct->State.whole;
499 011c b600 ld a,_TSL_TempGlobalState
500 011e 92ca00 or a,[_pMCKeyStruct.w]
501 0121 b700 ld _TSL_TempGlobalState,a
502 ; 1114 pMCKeyStruct->Setting.b.CHANGED = 0;
504 0123 be00 ldw x,_pMCKeyStruct
505 0125 e602 ld a,(2,x)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -