⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stm8_tsl_singlechannelkey.ls

📁 STM8s
💻 LS
📖 第 1 页 / 共 2 页
字号:
   1                     ; C Compiler for STM8 (COSMIC Software)
   2                     ; Parser V4.9.2 - 29 Jun 2010
   3                     ; Generator V4.3.5 - 02 Jul 2010
  80                     ; 53 void TSL_SCKey_Init(void)
  80                     ; 54 {
  82                     	switch	.text
  83  0000               _TSL_SCKey_Init:
  87                     ; 55   for (KeyIndex = 0; KeyIndex < NUMBER_OF_SINGLE_CHANNEL_KEYS; KeyIndex++)
  89  0000 3f00          	clr	_KeyIndex
  90  0002               L53:
  91                     ; 57     TSL_SetStructPointer();
  93  0002 cd0000        	call	_TSL_SetStructPointer
  95                     ; 58     pKeyStruct->State.whole = DISABLED_STATE;
  97  0005 a680          	ld	a,#128
  98  0007 92c700        	ld	[_pKeyStruct.w],a
  99                     ; 59     pKeyStruct->DetectThreshold = SCKEY_DETECTTHRESHOLD_DEFAULT;
 101  000a be00          	ldw	x,_pKeyStruct
 102  000c a628          	ld	a,#40
 103  000e e70c          	ld	(12,x),a
 104                     ; 60     pKeyStruct->EndDetectThreshold = SCKEY_ENDDETECTTHRESHOLD_DEFAULT;
 106  0010 be00          	ldw	x,_pKeyStruct
 107  0012 a61e          	ld	a,#30
 108  0014 e70d          	ld	(13,x),a
 109                     ; 61     pKeyStruct->RecalibrationThreshold = SCKEY_RECALIBRATIONTHRESHOLD_DEFAULT;
 111  0016 be00          	ldw	x,_pKeyStruct
 112  0018 a680          	ld	a,#128
 113  001a e70e          	ld	(14,x),a
 114                     ; 55   for (KeyIndex = 0; KeyIndex < NUMBER_OF_SINGLE_CHANNEL_KEYS; KeyIndex++)
 116  001c 3c00          	inc	_KeyIndex
 119  001e b600          	ld	a,_KeyIndex
 120  0020 a102          	cp	a,#2
 121  0022 25de          	jrult	L53
 122                     ; 63 }
 125  0024 81            	ret
 156                     ; 76 void TSL_SCKEY_P1_Acquisition(void)
 156                     ; 77 {
 157                     	switch	.text
 158  0025               _TSL_SCKEY_P1_Acquisition:
 162                     ; 120   sTouchIO.PORT_ADDR = (GPIO_TypeDef *)(SCKEY_P1_PORT_ADDR);
 164  0025 ae5005        	ldw	x,#20485
 165  0028 bf00          	ldw	_sTouchIO,x
 166                     ; 121   for (KeyIndex = 0; KeyIndex < SCKEY_P1_KEY_COUNT; KeyIndex++)
 168  002a 3f00          	clr	_KeyIndex
 169  002c               L35:
 170                     ; 123     TSL_SetStructPointer();
 172  002c cd0000        	call	_TSL_SetStructPointer
 174                     ; 124     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 273e          	jreq	L16
 180  0036 92c600        	ld	a,[_pKeyStruct.w]
 181  0039 a180          	cp	a,#128
 182  003b 2737          	jreq	L16
 183                     ; 126       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                     ; 127       sTouchIO.DriveMask = (u8)(sTouchIO.AcqMask | SCKEY_P1_DRIVEN_SHIELD_MASK);
 192  0046 b602          	ld	a,_sTouchIO+2
 193  0048 aa02          	or	a,#2
 194  004a b703          	ld	_sTouchIO+3,a
 195                     ; 128       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 01            	rrwa	x,a
 202  0053 ab05          	add	a,#_sSCKeyInfo+5
 203  0055 2401          	jrnc	L01
 204  0057 5c            	incw	x
 205  0058               L01:
 206  0058 5f            	clrw	x
 207  0059 97            	ld	xl,a
 208  005a bf04          	ldw	_sTouchIO+4,x
 209                     ; 129       sTouchIO.RejectedNb = &sSCKeyInfo[KeyIndex].Channel.LastMeasRejectNb;
 211  005c b600          	ld	a,_KeyIndex
 212  005e 97            	ld	xl,a
 213  005f a60f          	ld	a,#15
 214  0061 42            	mul	x,a
 215  0062 01            	rrwa	x,a
 216  0063 ab07          	add	a,#_sSCKeyInfo+7
 217  0065 2401          	jrnc	L21
 218  0067 5c            	incw	x
 219  0068               L21:
 220  0068 5f            	clrw	x
 221  0069 97            	ld	xl,a
 222  006a bf06          	ldw	_sTouchIO+6,x
 223                     ; 130       sTouchIO.Type = SCKEY_TYPE;
 225  006c 3f08          	clr	_sTouchIO+8
 226                     ; 131       TSL_IO_Acquisition(SCKEY_ACQ_NUM, SCKEY_ADJUST_LEVEL);
 228  006e ae0301        	ldw	x,#769
 229  0071 cd0000        	call	_TSL_IO_Acquisition
 231  0074               L16:
 232                     ; 121   for (KeyIndex = 0; KeyIndex < SCKEY_P1_KEY_COUNT; KeyIndex++)
 234  0074 3c00          	inc	_KeyIndex
 237  0076 b600          	ld	a,_KeyIndex
 238  0078 a102          	cp	a,#2
 239  007a 25b0          	jrult	L35
 240                     ; 135 }
 243  007c 81            	ret
 281                     ; 296 void TSL_SCKey_Process(void)
 281                     ; 297 {
 282                     	switch	.text
 283  007d               _TSL_SCKey_Process:
 287                     ; 298   TSL_SetStructPointer();
 289  007d cd0000        	call	_TSL_SetStructPointer
 291                     ; 300   TSL_DeltaCalculation();
 293  0080 cd0000        	call	_TSL_DeltaCalculation
 295                     ; 302   switch (pKeyStruct->State.whole)
 297  0083 92c600        	ld	a,[_pKeyStruct.w]
 299                     ; 353       break;
 300  0086 4a            	dec	a
 301  0087 2751          	jreq	L57
 302  0089 4a            	dec	a
 303  008a 271a          	jreq	L36
 304  008c a002          	sub	a,#2
 305  008e 272d          	jreq	L76
 306  0090 a004          	sub	a,#4
 307  0092 2759          	jreq	L77
 308  0094 a009          	sub	a,#9
 309  0096 273d          	jreq	L37
 310  0098 a003          	sub	a,#3
 311  009a 271c          	jreq	L56
 312  009c a010          	sub	a,#16
 313  009e 2730          	jreq	L17
 314  00a0 a05c          	sub	a,#92
 315  00a2 274e          	jreq	L101
 316  00a4               L721:
 318  00a4 20fe          	jra	L721
 319  00a6               L36:
 320                     ; 305     case IDLE_STATE:
 320                     ; 306       if (TSL_SCKey_CheckErrorCondition())
 322  00a6 cd0241        	call	_TSL_SCKey_CheckErrorCondition
 324  00a9 4d            	tnz	a
 325  00aa 2705          	jreq	L121
 326                     ; 308         TSL_SCKey_SetErrorState();
 328  00ac cd0000        	call	_TSL_SCKey_SetErrorState
 330                     ; 309         break;
 332  00af 2044          	jra	L711
 333  00b1               L121:
 334                     ; 311       TSL_SCKey_IdleTreatment();
 336  00b1 ad5f          	call	_TSL_SCKey_IdleTreatment
 338                     ; 312       TSL_SCKey_CheckDisabled();
 340  00b3 cd0221        	call	_TSL_SCKey_CheckDisabled
 342                     ; 313       break;
 344  00b6 203d          	jra	L711
 345  00b8               L56:
 346                     ; 315     case PRE_DETECTED_STATE:
 346                     ; 316       TSL_SCKey_PreDetectTreatment();
 348  00b8 cd0149        	call	_TSL_SCKey_PreDetectTreatment
 350                     ; 317       break;
 352  00bb 2038          	jra	L711
 353  00bd               L76:
 354                     ; 319     case DETECTED_STATE:
 354                     ; 320       if (TSL_SCKey_CheckErrorCondition())
 356  00bd cd0241        	call	_TSL_SCKey_CheckErrorCondition
 358  00c0 4d            	tnz	a
 359  00c1 2705          	jreq	L321
 360                     ; 322         TSL_SCKey_SetErrorState();
 362  00c3 cd0000        	call	_TSL_SCKey_SetErrorState
 364                     ; 323         break;
 366  00c6 202d          	jra	L711
 367  00c8               L321:
 368                     ; 325       TSL_SCKey_DetectedTreatment();
 370  00c8 cd0175        	call	_TSL_SCKey_DetectedTreatment
 372                     ; 326       TSL_SCKey_CheckDisabled();
 374  00cb cd0221        	call	_TSL_SCKey_CheckDisabled
 376                     ; 327       break;
 378  00ce 2025          	jra	L711
 379  00d0               L17:
 380                     ; 329     case POST_DETECTED_STATE:
 380                     ; 330       TSL_SCKey_PostDetectTreatment();
 382  00d0 cd019c        	call	_TSL_SCKey_PostDetectTreatment
 384                     ; 331       break;
 386  00d3 2020          	jra	L711
 387  00d5               L37:
 388                     ; 333     case PRE_CALIBRATION_STATE:
 388                     ; 334       TSL_SCKey_PreRecalibrationTreatment();
 390  00d5 cd01c4        	call	_TSL_SCKey_PreRecalibrationTreatment
 392                     ; 335       break;
 394  00d8 201b          	jra	L711
 395  00da               L57:
 396                     ; 337     case CALIBRATION_STATE:
 396                     ; 338       if (TSL_SCKey_CheckErrorCondition())
 398  00da cd0241        	call	_TSL_SCKey_CheckErrorCondition
 400  00dd 4d            	tnz	a
 401  00de 2705          	jreq	L521
 402                     ; 340         TSL_SCKey_SetErrorState();
 404  00e0 cd0000        	call	_TSL_SCKey_SetErrorState
 406                     ; 341         break;
 408  00e3 2010          	jra	L711
 409  00e5               L521:
 410                     ; 343       TSL_SCKey_CalibrationTreatment();
 412  00e5 cd01ec        	call	_TSL_SCKey_CalibrationTreatment
 414                     ; 344       TSL_SCKey_CheckDisabled();
 416  00e8 cd0221        	call	_TSL_SCKey_CheckDisabled
 418                     ; 345       break;
 420  00eb 2008          	jra	L711
 421  00ed               L77:
 422                     ; 347     case ERROR_STATE:
 422                     ; 348       TSL_SCKey_CheckDisabled();
 424  00ed cd0221        	call	_TSL_SCKey_CheckDisabled
 426                     ; 349       break;
 428  00f0 2003          	jra	L711
 429  00f2               L101:
 430                     ; 351     case DISABLED_STATE:
 430                     ; 352       TSL_SCKey_CheckEnabled();
 432  00f2 cd022d        	call	_TSL_SCKey_CheckEnabled
 434                     ; 353       break;
 436  00f5               L711:
 437                     ; 363   TSL_TempGlobalSetting.whole |= pKeyStruct->Setting.whole;
 439  00f5 be00          	ldw	x,_pKeyStruct
 440  00f7 ee01          	ldw	x,(1,x)
 441  00f9 01            	rrwa	x,a
 442  00fa ba01          	or	a,_TSL_TempGlobalSetting+1
 443  00fc 01            	rrwa	x,a
 444  00fd ba00          	or	a,_TSL_TempGlobalSetting
 445  00ff 01            	rrwa	x,a
 446  0100 bf00          	ldw	_TSL_TempGlobalSetting,x
 447                     ; 364   TSL_TempGlobalState.whole |= pKeyStruct->State.whole;
 449  0102 b600          	ld	a,_TSL_TempGlobalState
 450  0104 92ca00        	or	a,[_pKeyStruct.w]
 451  0107 b700          	ld	_TSL_TempGlobalState,a
 452                     ; 365   pKeyStruct->Setting.b.CHANGED = 0;
 454  0109 be00          	ldw	x,_pKeyStruct
 455  010b e602          	ld	a,(2,x)
 456  010d a4f7          	and	a,#247
 457  010f e702          	ld	(2,x),a
 458                     ; 366 }
 461  0111 81            	ret
 491                     ; 379 void TSL_SCKey_IdleTreatment(void)
 491                     ; 380 {
 492                     	switch	.text
 493  0112               _TSL_SCKey_IdleTreatment:
 497                     ; 383   if (pKeyStruct->Channel.LastMeasRejectNb > MAX_REJECTED_MEASUREMENTS)
 499  0112 be00          	ldw	x,_pKeyStruct
 500  0114 6d07          	tnz	(7,x)
 501  0116 2701          	jreq	L341
 502                     ; 385     return;
 505  0118 81            	ret
 506  0119               L341:
 507                     ; 390   if (Delta <= pKeyStruct->RecalibrationThreshold)
 509  0119 9c            	rvf
 510  011a be00          	ldw	x,_pKeyStruct
 511  011c e60e          	ld	a,(14,x)
 512  011e 5f            	clrw	x
 513  011f 4d            	tnz	a
 514  0120 2a01          	jrpl	L02
 515  0122 53            	cplw	x
 516  0123               L02:
 517  0123 97            	ld	xl,a
 518  0124 b300          	cpw	x,_Delta
 519  0126 2f04          	jrslt	L541
 520                     ; 392     TSL_SCKey_SetPreRecalibrationState();
 522  0128 cd0000        	call	_TSL_SCKey_SetPreRecalibrationState
 524                     ; 393     return;
 527  012b 81            	ret
 528  012c               L541:
 529                     ; 398   if (Delta >= pKeyStruct->DetectThreshold)
 531  012c 9c            	rvf
 532  012d be00          	ldw	x,_pKeyStruct
 533  012f e60c          	ld	a,(12,x)
 534  0131 5f            	clrw	x
 535  0132 4d            	tnz	a
 536  0133 2a01          	jrpl	L22
 537  0135 53            	cplw	x
 538  0136               L22:
 539  0136 97            	ld	xl,a
 540  0137 b300          	cpw	x,_Delta
 541  0139 2c0d          	jrsgt	L741
 542                     ; 403     TSL_SCKey_SetPreDetectState();
 544  013b cd0000        	call	_TSL_SCKey_SetPreDetectState
 546                     ; 404     if (!DetectionIntegrator)
 548  013e 3d00          	tnz	_DetectionIntegrator
 549  0140 2606          	jrne	L741
 550                     ; 406       pKeyStruct->Channel.IntegratorCounter++;
 552  0142 be00          	ldw	x,_pKeyStruct
 553  0144 6c0a          	inc	(10,x)
 554                     ; 407       TSL_SCKey_PreDetectTreatment();
 556  0146 ad01          	call	_TSL_SCKey_PreDetectTreatment
 558  0148               L741:
 559                     ; 410 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -