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

📄 stm8_tsl_rc_iodriver.ls

📁 STM8-触摸例程
💻 LS
📖 第 1 页 / 共 2 页
字号:
   1                     ; C Compiler for STM8 (COSMIC Software)
   2                     ; Generator V4.2.8 - 03 Dec 2008
   3                     ; Optimizer V4.2.8 - 03 Dec 2008
  39                     .const:	section	.text
  40  0000               _Table_SCKEY_BITS:
  41  0000 40            	dc.b	64
  42  0001 20            	dc.b	32
  43  0002 10            	dc.b	16
  44  0003 08            	dc.b	8
  45  0004 04            	dc.b	4
  46  0005 01            	dc.b	1
  47  0006 80            	dc.b	128
  48  0007 08            	dc.b	8
  49  0008 04            	dc.b	4
  50  0009 02            	dc.b	2
  81                     ; 221 void TSL_IO_SW_Burst_TestSyncShift(void)
  81                     ; 222 {
  83                     .TSL_IO_ALCODE:	section	.text
  84  0000               _TSL_IO_SW_Burst_TestSyncShift:
  88                     ; 225   ld a, _SamplingShifter
  91  0000 b601          	ld	a,_SamplingShifter
  93                     ; 227 ShiftLoopVih:
  96  0002               ShiftLoopVih:
  98                     ; 228   dec a        // 1 cycle
 101  0002 4a            	dec	a//1cycle
 103                     ; 229   jrne ShiftLoopVih
 106  0003 26fd          	jrne	ShiftLoopVih
 108                     ; 232 }
 111  0005 81            	ret	
 135                     ; 248 void TSL_IO_SW_Burst_Wait_Vil(void)
 135                     ; 249 {
 136                     	switch	.TSL_IO_ALCODE
 137  0006               _TSL_IO_SW_Burst_Wait_Vil:
 141                     ; 252   nop
 144  0006 9d            	nop	
 146                     ; 253   ld a, _AcquisitionBitMask
 149  0007 b600          	ld	a,_AcquisitionBitMask
 151                     ; 254   ldw x, _sTouchIO   // Input data register ...
 154  0009 be08          	ldw	x,_sTouchIO//Inputdataregister...
 156                     ; 255   incw x
 159  000b 5c            	incw	x
 161                     ; 257 WaitForVil:
 164  000c               WaitForVil:
 166                     ; 258   bcp a, (x)  // 1 cycles
 169  000c f5            	bcp	a,(x)//1cycles
 171                     ; 259   jreq EndWaitForVil
 174  000d 270a          	jreq	EndWaitForVil
 176                     ; 260   ldw y, _TIM3_CNTR // 2 cycles; hw counter also used for timeout ...
 179  000f 90ce5328      	ldw	y,_TIM3_CNTR//2cycles
 181                     ; 261   cpw y, #0x0E00    // 2 cycles; Timeout compare
 184  0013 90a30e00      	cpw	y,#0x0E00//2cycles
 186                     ; 262   jrult WaitForVil
 189  0017 25f3          	jrult	WaitForVil
 191                     ; 263 EndWaitForVil:
 194  0019               EndWaitForVil:
 196                     ; 266 }
 199  0019 81            	ret	
 223                     ; 282 void TSL_IO_SW_Burst_Wait_Vih(void)
 223                     ; 283 {
 224                     	switch	.TSL_IO_ALCODE
 225  001a               _TSL_IO_SW_Burst_Wait_Vih:
 229                     ; 286   nop
 232  001a 9d            	nop	
 234                     ; 287   ld a, _AcquisitionBitMask
 237  001b b600          	ld	a,_AcquisitionBitMask
 239                     ; 288   ldw x, _sTouchIO   // Input data register ...
 242  001d be08          	ldw	x,_sTouchIO//Inputdataregister...
 244                     ; 289   incw x
 247  001f 5c            	incw	x
 249                     ; 291 WaitForVih:
 252  0020               WaitForVih:
 254                     ; 292   bcp a, (x)  // 1 cycles
 257  0020 f5            	bcp	a,(x)//1cycles
 259                     ; 293   jrne EndWaitForVih
 262  0021 260a          	jrne	EndWaitForVih
 264                     ; 294   ldw y, _TIM3_CNTR // 2 cycles; hw counter also used for timeout ...
 267  0023 90ce5328      	ldw	y,_TIM3_CNTR//2cycles
 269                     ; 295   cpw y, #0x0E00    // 2 cycles; Timeout compare
 272  0027 90a30e00      	cpw	y,#0x0E00//2cycles
 274                     ; 296   jrult WaitForVih
 277  002b 25f3          	jrult	WaitForVih
 279                     ; 297 EndWaitForVih:
 282  002d               EndWaitForVih:
 284                     ; 299 }
 287  002d 81            	ret	
 311                     ; 324 void TSL_IO_Init(void)
 311                     ; 325 {
 312                     	switch	.text
 313  0000               _TSL_IO_Init:
 317                     ; 328   ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->CR1 |= LOADREF_BIT;
 319  0000 7218501c      	bset	20508,#4
 320                     ; 329   ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->DDR |= LOADREF_BIT;
 322  0004 7218501b      	bset	20507,#4
 323                     ; 330   ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->ODR &= (u8)(~LOADREF_BIT);
 325  0008 72195019      	bres	20505,#4
 326                     ; 340   ((GPIO_TypeDef *)(GPIOC_BaseAddress))->CR1 |= GPIOC_ELECTRODES_MASK;
 328  000c c6500d        	ld	a,20493
 329  000f aa8e          	or	a,#142
 330  0011 c7500d        	ld	20493,a
 331                     ; 343   ((GPIO_TypeDef *)(GPIOD_BaseAddress))->CR1 |= GPIOD_ELECTRODES_MASK;
 333  0014 c65012        	ld	a,20498
 334  0017 aa7d          	or	a,#125
 335  0019 c75012        	ld	20498,a
 336                     ; 361   TSL_IO_Clamp();
 338  001c ad09          	call	_TSL_IO_Clamp
 340                     ; 364   TIM3->PSCR = 0;
 342  001e 725f532a      	clr	21290
 343                     ; 365   TIM3->CR1 = 0x01;
 345  0022 35015320      	mov	21280,#1
 346                     ; 367 }
 349  0026 81            	ret	
 372                     ; 380 void TSL_IO_Clamp(void)
 372                     ; 381 {
 373                     	switch	.text
 374  0027               _TSL_IO_Clamp:
 378                     ; 384   ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->ODR &= (u8)(~LOADREF_BIT);
 380  0027 72195019      	bres	20505,#4
 381                     ; 396   ((GPIO_TypeDef *)(GPIOC_BaseAddress))->ODR &= (u8)(~GPIOC_ELECTRODES_MASK);
 383  002b c6500a        	ld	a,20490
 384  002e a471          	and	a,#113
 385  0030 c7500a        	ld	20490,a
 386                     ; 397   ((GPIO_TypeDef *)(GPIOC_BaseAddress))->DDR |= GPIOC_ELECTRODES_MASK;
 388  0033 c6500c        	ld	a,20492
 389  0036 aa8e          	or	a,#142
 390  0038 c7500c        	ld	20492,a
 391                     ; 400   ((GPIO_TypeDef *)(GPIOD_BaseAddress))->ODR &= (u8)(~GPIOD_ELECTRODES_MASK);
 393  003b c6500f        	ld	a,20495
 394  003e a482          	and	a,#130
 395  0040 c7500f        	ld	20495,a
 396                     ; 401   ((GPIO_TypeDef *)(GPIOD_BaseAddress))->DDR |= GPIOD_ELECTRODES_MASK;
 398  0043 c65011        	ld	a,20497
 399  0046 aa7d          	or	a,#125
 400  0048 c75011        	ld	20497,a
 401                     ; 424 }
 404  004b 81            	ret	
 428                     ; 437 void TSL_IO_SW_Burst_Start_Timer(void)
 428                     ; 438 {
 429                     	switch	.text
 430  004c               _TSL_IO_SW_Burst_Start_Timer:
 434                     ; 440   TIM3->EGR |= 0x01;
 436  004c 72105324      	bset	21284,#0
 437                     ; 442 }
 440  0050 81            	ret	
 464                     ; 455 void TSL_IO_SW_Burst_Stop_Timer(void)
 464                     ; 456 {
 465                     	switch	.text
 466  0051               _TSL_IO_SW_Burst_Stop_Timer:
 470                     ; 459   ld a, _TIM3_CNTR
 473  0051 c65328        	ld	a,_TIM3_CNTR
 475                     ; 460   ld _CounterStop, a
 478  0054 b702          	ld	_CounterStop,a
 480                     ; 461   ld a, _TIM3_CNTR + 1
 483  0056 c65329        	ld	a,_TIM3_CNTR+1
 485                     ; 462   ld _CounterStop + 1, a
 488  0059 b703          	ld	_CounterStop+1,a
 490                     ; 465 }
 493  005b 81            	ret	
 627                     ; 478 void TSL_IO_Acquisition(u8 AcqNumber, u8 AdjustmentLevel)
 627                     ; 479 {
 628                     	switch	.text
 629  005c               _TSL_IO_Acquisition:
 631  005c 89            	pushw	x
 632  005d 520f          	subw	sp,#15
 633       0000000f      OFST:	set	15
 636                     ; 486   AcquisitionBitMask = sTouchIO.AcqMask;
 638  005f 450a00        	mov	_AcquisitionBitMask,_sTouchIO+2
 639                     ; 488   MinMeasurement = 0;
 641  0062 5f            	clrw	x
 642  0063 1f04          	ldw	(OFST-11,sp),x
 643                     ; 489   MaxMeasurement = 0;
 645  0065 1f02          	ldw	(OFST-13,sp),x
 646                     ; 490   FinalMeasurementValue = 0;
 648  0067 bf06          	ldw	_FinalMeasurementValue+2,x
 649  0069 bf04          	ldw	_FinalMeasurementValue,x
 650                     ; 491   RejectionCounter = 0;
 652  006b 0f08          	clr	(OFST-7,sp)
 653                     ; 493   for ( AcqLoopIndex = 0; AcqLoopIndex < AcqNumber; AcqLoopIndex++ )
 655  006d 0f01          	clr	(OFST-14,sp)
 657  006f cc0166        	jra	L302
 658  0072               L702:
 659                     ; 499       MeasRejected = 0;
 661  0072 0f09          	clr	(OFST-6,sp)
 662                     ; 500       CumulatedMeasurement = 0;
 664  0074 5f            	clrw	x
 665  0075 1f06          	ldw	(OFST-9,sp),x
 666                     ; 502       for ( SamplingShifter = SAMPLING_SHIFTER_LOOP_START;
 668  0077 35010001      	mov	_SamplingShifter,#1
 669  007b               L512:
 670                     ; 508         disableInterrupts();
 673  007b 9b            	sim	
 675                     ; 510         sTouchIO.PORT_ADDR->ODR &= (u8)(~sTouchIO.DriveMask);
 678  007c b60b          	ld	a,_sTouchIO+3
 679  007e 43            	cpl	a
 680  007f 92c408        	and	a,[_sTouchIO.w]
 681  0082 92c708        	ld	[_sTouchIO.w],a
 682                     ; 511         sTouchIO.PORT_ADDR->DDR |= sTouchIO.DriveMask;
 684  0085 be08          	ldw	x,_sTouchIO
 685  0087 e602          	ld	a,(2,x)
 686  0089 ba0b          	or	a,_sTouchIO+3
 687  008b e702          	ld	(2,x),a
 688                     ; 512         sTouchIO.PORT_ADDR->CR1 &= (u8)(~sTouchIO.DriveMask);
 690  008d b60b          	ld	a,_sTouchIO+3
 691  008f 43            	cpl	a
 692  0090 e403          	and	a,(3,x)
 693  0092 e703          	ld	(3,x),a
 694                     ; 513         ((GPIO_TypeDef *) (LOADREF_PORT_ADDR))->ODR |= LOADREF_BIT;
 696  0094 72185019      	bset	20505,#4
 697                     ; 515         TSL_IO_SW_Burst_Start_Timer();
 699  0098 adb2          	call	_TSL_IO_SW_Burst_Start_Timer
 701                     ; 516         sTouchIO.PORT_ADDR->DDR &= (u8)(~sTouchIO.DriveMask);
 703  009a be08          	ldw	x,_sTouchIO
 704  009c b60b          	ld	a,_sTouchIO+3
 705  009e 43            	cpl	a

⌨️ 快捷键说明

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