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

📄 stm8_tsl_rc_singlechannelkey.ls

📁 STM8-触摸例程
💻 LS
📖 第 1 页 / 共 3 页
字号:
   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 + -