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

📄 stm8_tsl_rc_singlechannelkey.ls

📁 STM8全部资料
💻 LS
📖 第 1 页 / 共 2 页
字号:
   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 + -