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

📄 stm8_tsl_rc_acquisition.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
  49                     .const:	section	.text
  50  0000               _Table_SCKEY_BITS:
  51  0000 80            	dc.b	128
  52  0001 01            	dc.b	1
  53  0002               _Table_MCKEY_PORTS:
  54  0002 5005          	dc.w	20485
  55  0004 5005          	dc.w	20485
  56  0006 5005          	dc.w	20485
  57  0008 5005          	dc.w	20485
  58  000a 5005          	dc.w	20485
  59  000c               _Table_MCKEY_BITS:
  60  000c 40            	dc.b	64
  61  000d 20            	dc.b	32
  62  000e 10            	dc.b	16
  63  000f 08            	dc.b	8
  64  0010 04            	dc.b	4
  95                     ; 240 void TSL_IO_SW_Burst_TestSyncShift(void)
  95                     ; 241 {
  97                     	switch	.text
  98  0000               _TSL_IO_SW_Burst_TestSyncShift:
 102                     ; 245   ld a, _SamplingShifter
 105  0000 b601          ld a, _SamplingShifter
 107                     ; 247 ShiftLoopVih:
 110  0002               ShiftLoopVih:
 112                     ; 248   dec a       // 1 cycle
 115  0002 4a            dec a       // 1 cycle
 117                     ; 249   jrne ShiftLoopVih
 120  0003 26fd          jrne ShiftLoopVih
 122                     ; 266 }
 125  0005 81            	ret
 149                     ; 277 void TSL_IO_SW_Burst_Wait_Vil(void)
 149                     ; 278 {
 150                     	switch	.text
 151  0006               _TSL_IO_SW_Burst_Wait_Vil:
 155                     ; 282   ld a, _AcquisitionBitMask
 158  0006 b600          ld a, _AcquisitionBitMask
 160                     ; 283   ldw x, _sTouchIO   // Input data register ...
 163  0008 be08          ldw x, _sTouchIO   // Input data register ...
 165                     ; 284   incw x
 168  000a 5c            incw x
 170                     ; 286 WaitForVil:
 173  000b               WaitForVil:
 175                     ; 290   bcp a, (x)  // 1 cycles
 178  000b f5            bcp a, (x)  // 1 cycles
 180                     ; 291   jreq EndWaitForVil
 183  000c 270a          jreq EndWaitForVil
 185                     ; 292   ldw y, _TIMACQ_CNTR // 2 cycles; hw counter also used for timeout ...
 188  000e 90ce5328      ldw y, _TIMACQ_CNTR // 2 cycles; hw counter also used for timeout ...
 190                     ; 293   cpw y, #0x0E00    // 2 cycles; Timeout compare
 193  0012 90a30e00      cpw y, #0x0E00    // 2 cycles; Timeout compare
 195                     ; 294   jrult WaitForVil
 198  0016 25f3          jrult WaitForVil
 200                     ; 295 EndWaitForVil:
 203  0018               EndWaitForVil:
 205                     ; 331 }
 208  0018 81            	ret
 232                     ; 342 void TSL_IO_SW_Burst_Wait_Vih(void)
 232                     ; 343 {
 233                     	switch	.text
 234  0019               _TSL_IO_SW_Burst_Wait_Vih:
 238                     ; 346   ld a, _AcquisitionBitMask
 241  0019 b600          ld a, _AcquisitionBitMask
 243                     ; 347   ldw x, _sTouchIO   // Input data register ...
 246  001b be08          ldw x, _sTouchIO   // Input data register ...
 248                     ; 348   incw x
 251  001d 5c            incw x
 253                     ; 350 WaitForVih:
 256  001e               WaitForVih:
 258                     ; 354   bcp a, (x)  // 1 cycles
 261  001e f5            bcp a, (x)  // 1 cycles
 263                     ; 355   jrne EndWaitForVih
 266  001f 260a          jrne EndWaitForVih
 268                     ; 356   ldw y, _TIMACQ_CNTR // 2 cycles; hw counter also used for timeout ...
 271  0021 90ce5328      ldw y, _TIMACQ_CNTR // 2 cycles; hw counter also used for timeout ...
 273                     ; 357   cpw y, #0x0E00    // 2 cycles; Timeout compare
 276  0025 90a30e00      cpw y, #0x0E00    // 2 cycles; Timeout compare
 278                     ; 358   jrult WaitForVih
 281  0029 25f3          jrult WaitForVih
 283                     ; 359 EndWaitForVih:
 286  002b               EndWaitForVih:
 288                     ; 396 }
 291  002b 81            	ret
 315                     ; 443 void TSL_IO_Init(void)
 315                     ; 444 {
 316                     	switch	.text
 317  002c               _TSL_IO_Init:
 321                     ; 447   ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->CR1 |= LOADREF_BIT;
 323  002c 721c5003      	bset	20483,#6
 324                     ; 448   ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->DDR |= LOADREF_BIT;
 326  0030 721c5002      	bset	20482,#6
 327                     ; 449   ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->ODR &= (u8)(~LOADREF_BIT);
 329  0034 721d5000      	bres	20480,#6
 330                     ; 456   ((GPIO_TypeDef *)(GPIOB_BaseAddress))->CR1 |= GPIOB_ELECTRODES_MASK;
 332  0038 c65008        	ld	a,20488
 333  003b aaff          	or	a,#255
 334  003d c75008        	ld	20488,a
 335                     ; 480   TSL_IO_Clamp();
 337  0040 ad09          	call	_TSL_IO_Clamp
 339                     ; 483   TIMACQ->PSCR = 0;
 341  0042 725f532a      	clr	21290
 342                     ; 484   TIMACQ->CR1 = 0x01;
 344  0046 35015320      	mov	21280,#1
 345                     ; 486 }
 348  004a 81            	ret
 371                     ; 499 void TSL_IO_Clamp(void)
 371                     ; 500 {
 372                     	switch	.text
 373  004b               _TSL_IO_Clamp:
 377                     ; 503   ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->ODR &= (u8)(~LOADREF_BIT);
 379  004b 721d5000      	bres	20480,#6
 380                     ; 511   ((GPIO_TypeDef *)(GPIOB_BaseAddress))->ODR &= (u8)(~GPIOB_ELECTRODES_MASK);
 382  004f 725f5005      	clr	20485
 383                     ; 512   ((GPIO_TypeDef *)(GPIOB_BaseAddress))->DDR |= GPIOB_ELECTRODES_MASK;
 385  0053 c65007        	ld	a,20487
 386  0056 aaff          	or	a,#255
 387  0058 c75007        	ld	20487,a
 388                     ; 543 }
 391  005b 81            	ret
 415                     ; 556 void TSL_IO_SW_Burst_Start_Timer(void)
 415                     ; 557 {
 416                     	switch	.text
 417  005c               _TSL_IO_SW_Burst_Start_Timer:
 421                     ; 559   TIMACQ->EGR |= 0x01;
 423  005c 72105324      	bset	21284,#0
 424                     ; 561 }
 427  0060 81            	ret
 451                     ; 574 void TSL_IO_SW_Burst_Stop_Timer(void)
 451                     ; 575 {
 452                     	switch	.text
 453  0061               _TSL_IO_SW_Burst_Stop_Timer:
 457                     ; 578   ld a, _TIMACQ_CNTR
 460  0061 c65328        ld a, _TIMACQ_CNTR
 462                     ; 579   ld _CounterStop, a
 465  0064 b702          ld _CounterStop, a
 467                     ; 580   ld a, _TIMACQ_CNTR + 1
 470  0066 c65329        ld a, _TIMACQ_CNTR + 1
 472                     ; 581   ld _CounterStop + 1, a
 475  0069 b703          ld _CounterStop + 1, a
 477                     ; 599 }
 480  006b 81            	ret
 616                     ; 612 void TSL_IO_Acquisition(u8 AcqNumber, u8 AdjustmentLevel)
 616                     ; 613 {
 617                     	switch	.text
 618  006c               _TSL_IO_Acquisition:
 620  006c 89            	pushw	x
 621  006d 520f          	subw	sp,#15
 622       0000000f      OFST:	set	15
 625                     ; 620   AcquisitionBitMask = sTouchIO.AcqMask;
 627  006f 450a00        	mov	_AcquisitionBitMask,_sTouchIO+2
 628                     ; 622   MinMeasurement = 0;
 630  0072 5f            	clrw	x
 631  0073 1f04          	ldw	(OFST-11,sp),x
 632                     ; 623   MaxMeasurement = 0;
 634  0075 5f            	clrw	x
 635  0076 1f02          	ldw	(OFST-13,sp),x
 636                     ; 624   FinalMeasurementValue = 0;
 638  0078 ae0000        	ldw	x,#0
 639  007b bf06          	ldw	_FinalMeasurementValue+2,x
 640  007d ae0000        	ldw	x,#0
 641  0080 bf04          	ldw	_FinalMeasurementValue,x
 642                     ; 625   RejectionCounter = 0;
 644  0082 0f08          	clr	(OFST-7,sp)
 645                     ; 630   if (IT_Sync_Flags.one_acquisition_sync_enable)
 647  0084 b600          	ld	a,_IT_Sync_Flags
 648  0086 a501          	bcp	a,#1
 649  0088 270a          	jreq	L102
 650                     ; 632     IT_Sync_Flags.start = 0;
 652  008a 72170000      	bres	_IT_Sync_Flags,#3
 654  008e               L702:
 655                     ; 633     while (IT_Sync_Flags.start == 0);
 657  008e b600          	ld	a,_IT_Sync_Flags
 658  0090 a508          	bcp	a,#8
 659  0092 27fa          	jreq	L702
 660  0094               L102:
 661                     ; 638   for (AcqLoopIndex = 0; AcqLoopIndex < AcqNumber; AcqLoopIndex++)
 663  0094 0f01          	clr	(OFST-14,sp)
 665  0096 acc701c7      	jpf	L712
 666  009a               L312:
 667                     ; 643     if (IT_Sync_Flags.one_measure_sync_enable)
 669  009a b600          	ld	a,_IT_Sync_Flags
 670  009c a502          	bcp	a,#2
 671  009e 270a          	jreq	L532
 672                     ; 645       IT_Sync_Flags.start = 0;
 674  00a0 72170000      	bres	_IT_Sync_Flags,#3
 676  00a4               L132:
 677                     ; 646       while (IT_Sync_Flags.start == 0);
 679  00a4 b600          	ld	a,_IT_Sync_Flags
 680  00a6 a508          	bcp	a,#8
 681  00a8 27fa          	jreq	L132
 682  00aa               L532:
 683                     ; 653       MeasRejected = 0;
 685  00aa 0f09          	clr	(OFST-6,sp)
 686                     ; 654       CumulatedMeasurement = 0;
 688  00ac 5f            	clrw	x
 689  00ad 1f06          	ldw	(OFST-9,sp),x
 690                     ; 656       for (SamplingShifter = SAMPLING_SHIFTER_LOOP_START;
 692  00af 35010001      	mov	_SamplingShifter,#1
 693  00b3               L342:
 694                     ; 661         disableInterrupts();
 697  00b3 9b            sim
 699                     ; 662         sTouchIO.PORT_ADDR->ODR &= (u8)(~sTouchIO.DriveMask);
 702  00b4 b60b          	ld	a,_sTouchIO+3
 703  00b6 43            	cpl	a
 704  00b7 92c408        	and	a,[_sTouchIO.w]
 705  00ba 92c708        	ld	[_sTouchIO.w],a
 706                     ; 663         sTouchIO.PORT_ADDR->DDR |= sTouchIO.DriveMask;
 708  00bd be08          	ldw	x,_sTouchIO
 709  00bf e602          	ld	a,(2,x)
 710  00c1 ba0b          	or	a,_sTouchIO+3
 711  00c3 e702          	ld	(2,x),a
 712                     ; 664         sTouchIO.PORT_ADDR->CR1 &= (u8)(~sTouchIO.DriveMask);
 714  00c5 be08          	ldw	x,_sTouchIO
 715  00c7 b60b          	ld	a,_sTouchIO+3
 716  00c9 43            	cpl	a
 717  00ca e403          	and	a,(3,x)
 718  00cc e703          	ld	(3,x),a
 719                     ; 665         ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->ODR |= LOADREF_BIT;
 721  00ce 721c5000      	bset	20480,#6
 722                     ; 666         enableInterrupts();
 725  00d2 9a            rim
 727                     ; 671         if (IT_Sync_Flags.one_charge_sync_enable)
 730  00d3 b600          	ld	a,_IT_Sync_Flags
 731  00d5 a504          	bcp	a,#4
 732  00d7 270a          	jreq	L152
 733                     ; 673           IT_Sync_Flags.start = 0;
 735  00d9 72170000      	bres	_IT_Sync_Flags,#3
 737  00dd               L752:
 738                     ; 674           while (IT_Sync_Flags.start == 0);
 740  00dd b600          	ld	a,_IT_Sync_Flags
 741  00df a508          	bcp	a,#8
 742  00e1 27fa          	jreq	L752
 743  00e3               L152:
 744                     ; 682         disableInterrupts();
 747  00e3 9b            sim
 749                     ; 683         TSL_IO_SW_Burst_Start_Timer();
 752  00e4 cd005c        	call	_TSL_IO_SW_Burst_Start_Timer
 754                     ; 684         sTouchIO.PORT_ADDR->DDR &= (u8)(~sTouchIO.DriveMask);
 756  00e7 be08          	ldw	x,_sTouchIO
 757  00e9 b60b          	ld	a,_sTouchIO+3
 758  00eb 43            	cpl	a

⌨️ 快捷键说明

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