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

📄 stm8_tsl_rc_iodriver.ls

📁 STM8-触摸例程
💻 LS
📖 第 1 页 / 共 2 页
字号:
 706  009f e402          	and	a,(2,x)
 707  00a1 e702          	ld	(2,x),a
 708                     ; 517         TSL_IO_SW_Burst_TestSyncShift();
 710  00a3 cd0000        	call	_TSL_IO_SW_Burst_TestSyncShift
 712                     ; 518         TSL_IO_SW_Burst_Wait_Vih();
 714  00a6 cd001a        	call	_TSL_IO_SW_Burst_Wait_Vih
 716                     ; 519         TSL_IO_SW_Burst_Stop_Timer();
 718  00a9 ada6          	call	_TSL_IO_SW_Burst_Stop_Timer
 720                     ; 521         enableInterrupts();
 723  00ab 9a            	rim	
 725                     ; 523         Measurement = CounterStop;
 728  00ac be02          	ldw	x,_CounterStop
 729  00ae 1f0e          	ldw	(OFST-1,sp),x
 730                     ; 526         disableInterrupts();
 733  00b0 9b            	sim	
 735                     ; 528         sTouchIO.PORT_ADDR->ODR |= sTouchIO.DriveMask;
 738  00b1 92c608        	ld	a,[_sTouchIO.w]
 739  00b4 ba0b          	or	a,_sTouchIO+3
 740  00b6 92c708        	ld	[_sTouchIO.w],a
 741                     ; 529         sTouchIO.PORT_ADDR->DDR |= sTouchIO.DriveMask;
 743  00b9 be08          	ldw	x,_sTouchIO
 744  00bb e602          	ld	a,(2,x)
 745  00bd ba0b          	or	a,_sTouchIO+3
 746  00bf e702          	ld	(2,x),a
 747                     ; 530         sTouchIO.PORT_ADDR->CR1 |= sTouchIO.DriveMask;
 749  00c1 e603          	ld	a,(3,x)
 750  00c3 ba0b          	or	a,_sTouchIO+3
 751  00c5 e703          	ld	(3,x),a
 752                     ; 531         ((GPIO_TypeDef *) (LOADREF_PORT_ADDR))->ODR &= (u8)(~LOADREF_BIT);
 754  00c7 72195019      	bres	20505,#4
 755                     ; 533         TSL_IO_SW_Burst_Start_Timer();
 757  00cb cd004c        	call	_TSL_IO_SW_Burst_Start_Timer
 759                     ; 534         sTouchIO.PORT_ADDR->CR1 &= (u8)(~sTouchIO.DriveMask);
 761  00ce be08          	ldw	x,_sTouchIO
 762  00d0 b60b          	ld	a,_sTouchIO+3
 763  00d2 43            	cpl	a
 764  00d3 e403          	and	a,(3,x)
 765  00d5 e703          	ld	(3,x),a
 766                     ; 535         sTouchIO.PORT_ADDR->DDR &= (u8)(~sTouchIO.DriveMask);
 768  00d7 b60b          	ld	a,_sTouchIO+3
 769  00d9 43            	cpl	a
 770  00da e402          	and	a,(2,x)
 771  00dc e702          	ld	(2,x),a
 772                     ; 536         TSL_IO_SW_Burst_TestSyncShift();
 774  00de cd0000        	call	_TSL_IO_SW_Burst_TestSyncShift
 776                     ; 537         TSL_IO_SW_Burst_Wait_Vil();
 778  00e1 cd0006        	call	_TSL_IO_SW_Burst_Wait_Vil
 780                     ; 538         TSL_IO_SW_Burst_Stop_Timer();
 782  00e4 cd0051        	call	_TSL_IO_SW_Burst_Stop_Timer
 784                     ; 540         enableInterrupts();
 787  00e7 9a            	rim	
 789                     ; 542         Measurement += CounterStop;
 792  00e8 1e0e          	ldw	x,(OFST-1,sp)
 793  00ea 72bb0002      	addw	x,_CounterStop
 794  00ee 1f0e          	ldw	(OFST-1,sp),x
 795                     ; 544         CumulatedMeasurement += Measurement;
 797  00f0 1e06          	ldw	x,(OFST-9,sp)
 798  00f2 72fb0e        	addw	x,(OFST-1,sp)
 799  00f5 1f06          	ldw	(OFST-9,sp),x
 800                     ; 547         if (SamplingShifter == SAMPLING_SHIFTER_LOOP_START)
 802  00f7 b601          	ld	a,_SamplingShifter
 803  00f9 a101          	cp	a,#1
 804  00fb 262e          	jrne	L322
 805                     ; 549           tmpval = (u32)((u32)Measurement * MAX_MEAS_COEFF);
 807  00fd 1e0e          	ldw	x,(OFST-1,sp)
 808  00ff 90ae011a      	ldw	y,#282
 809  0103 cd0000        	call	c_umul
 811  0106 96            	ldw	x,sp
 812  0107 1c000a        	addw	x,#OFST-5
 813  010a cd0000        	call	c_rtol
 815                     ; 550           MaxMeasurement = (u16)((u16)(tmpval >> 8) + NB_CYCLES_VIHVIL_LOOP);
 817  010d 1e0b          	ldw	x,(OFST-4,sp)
 818  010f 1c0008        	addw	x,#8
 819  0112 1f02          	ldw	(OFST-13,sp),x
 820                     ; 551           tmpval = (u32)((u32)Measurement * MIN_MEAS_COEFF);
 822  0114 a6e6          	ld	a,#230
 823  0116 1e0e          	ldw	x,(OFST-1,sp)
 824  0118 cd0000        	call	c_cmulx
 826  011b 96            	ldw	x,sp
 827  011c 1c000a        	addw	x,#OFST-5
 828  011f cd0000        	call	c_rtol
 830                     ; 552           MinMeasurement = (u16)((u16)(tmpval >> 8) - NB_CYCLES_VIHVIL_LOOP);
 832  0122 1e0b          	ldw	x,(OFST-4,sp)
 833  0124 1d0008        	subw	x,#8
 834  0127 1f04          	ldw	(OFST-11,sp),x
 836  0129 201d          	jra	L522
 837  012b               L322:
 838                     ; 556           if ((Measurement < MinMeasurement) || (Measurement > MaxMeasurement))
 840  012b 1e0e          	ldw	x,(OFST-1,sp)
 841  012d 1304          	cpw	x,(OFST-11,sp)
 842  012f 2504          	jrult	L132
 844  0131 1302          	cpw	x,(OFST-13,sp)
 845  0133 2313          	jrule	L522
 846  0135               L132:
 847                     ; 558             MeasRejected++;
 849  0135 0c09          	inc	(OFST-6,sp)
 850                     ; 559             RejectionCounter++;
 852  0137 0c08          	inc	(OFST-7,sp)
 853                     ; 560             break; // Out from 'for SamplingShifter' loop !!!
 854  0139               L112:
 855                     ; 567     while (MeasRejected && (RejectionCounter <= MAX_REJECTED_MEASUREMENTS));
 857  0139 7b09          	ld	a,(OFST-6,sp)
 858  013b 2718          	jreq	L332
 860  013d 7b08          	ld	a,(OFST-7,sp)
 861  013f a115          	cp	a,#21
 862  0141 2403cc0072    	jrult	L702
 863  0146 200d          	jra	L332
 864  0148               L522:
 865                     ; 503             SamplingShifter < (SAMPLING_SHIFTER_NB_LOOPS + SAMPLING_SHIFTER_LOOP_START);
 865                     ; 504             SamplingShifter++ )
 867  0148 3c01          	inc	_SamplingShifter
 868                     ; 502       for ( SamplingShifter = SAMPLING_SHIFTER_LOOP_START;
 868                     ; 503             SamplingShifter < (SAMPLING_SHIFTER_NB_LOOPS + SAMPLING_SHIFTER_LOOP_START);
 870  014a b601          	ld	a,_SamplingShifter
 871  014c a109          	cp	a,#9
 872  014e 2403cc007b    	jrult	L512
 873  0153 20e4          	jra	L112
 874  0155               L332:
 875                     ; 569     if (MeasRejected == 0)
 877  0155 7b09          	ld	a,(OFST-6,sp)
 878  0157 2613          	jrne	L502
 879                     ; 571       FinalMeasurementValue += CumulatedMeasurement;
 881  0159 1e06          	ldw	x,(OFST-9,sp)
 882  015b cd0000        	call	c_uitolx
 884  015e ae0004        	ldw	x,#_FinalMeasurementValue
 885  0161 cd0000        	call	c_lgadd
 888                     ; 493   for ( AcqLoopIndex = 0; AcqLoopIndex < AcqNumber; AcqLoopIndex++ )
 890  0164 0c01          	inc	(OFST-14,sp)
 891  0166               L302:
 894  0166 7b01          	ld	a,(OFST-14,sp)
 895  0168 1110          	cp	a,(OFST+1,sp)
 896  016a 25d7          	jrult	L702
 897  016c               L502:
 898                     ; 580   disableInterrupts();
 901  016c 9b            	sim	
 903                     ; 582   TSL_IO_Clamp(); // To avoid consumption
 906  016d cd0027        	call	_TSL_IO_Clamp
 908                     ; 584   *sTouchIO.RejectedNb = RejectionCounter;
 910  0170 7b08          	ld	a,(OFST-7,sp)
 911  0172 92c70e        	ld	[_sTouchIO+6.w],a
 912                     ; 586   if (RejectionCounter <= MAX_REJECTED_MEASUREMENTS)
 914  0175 a115          	cp	a,#21
 915  0177 2420          	jruge	L142
 916                     ; 588     FinalMeasurementValue = (u32)(FinalMeasurementValue >> 3); /* Division by SAMPLING_SHIFTER_NB_LOOPS */
 918  0179 ae0004        	ldw	x,#_FinalMeasurementValue
 919  017c a603          	ld	a,#3
 920  017e cd0000        	call	c_lgursh
 923  0181 2008          	jra	L542
 924  0183               L342:
 925                     ; 591       FinalMeasurementValue = (u32)(FinalMeasurementValue >> 1);
 927  0183 3404          	srl	_FinalMeasurementValue
 928  0185 3605          	rrc	_FinalMeasurementValue+1
 929  0187 3606          	rrc	_FinalMeasurementValue+2
 930  0189 3607          	rrc	_FinalMeasurementValue+3
 931  018b               L542:
 932                     ; 589     while ( AdjustmentLevel-- )
 934  018b 7b11          	ld	a,(OFST+2,sp)
 935  018d 0a11          	dec	(OFST+2,sp)
 936  018f 4d            	tnz	a
 937  0190 26f1          	jrne	L342
 938                     ; 593     *sTouchIO.Measurement = (u16)FinalMeasurementValue;
 940  0192 be06          	ldw	x,_FinalMeasurementValue+2
 941  0194 92cf0c        	ldw	[_sTouchIO+4.w],x
 943  0197 2008          	jra	L152
 944  0199               L142:
 945                     ; 601       pKeyStruct->Setting.b.NOISE = 1; /* Warning: Application layer must reset this flag */
 947  0199 be00          	ldw	x,_pKeyStruct
 948  019b e602          	ld	a,(2,x)
 949  019d aa40          	or	a,#64
 950  019f e702          	ld	(2,x),a
 951  01a1               L152:
 952                     ; 611   enableInterrupts();
 955  01a1 9a            	rim	
 957                     ; 613 }
 961  01a2 5b11          	addw	sp,#17
 962  01a4 81            	ret	
1169                     	switch	.ubsct
1170  0000               _AcquisitionBitMask:
1171  0000 00            	ds.b	1
1172                     	xdef	_AcquisitionBitMask
1173  0001               _SamplingShifter:
1174  0001 00            	ds.b	1
1175                     	xdef	_SamplingShifter
1176  0002               _CounterStop:
1177  0002 0000          	ds.b	2
1178                     	xdef	_CounterStop
1179  0004               _FinalMeasurementValue:
1180  0004 00000000      	ds.b	4
1181                     	xdef	_FinalMeasurementValue
1182                     	xref.b	_pKeyStruct
1183                     	xdef	_TSL_IO_SW_Burst_Stop_Timer
1184                     	xdef	_TSL_IO_SW_Burst_Start_Timer
1185                     	xdef	_TSL_IO_SW_Burst_Wait_Vih
1186                     	xdef	_TSL_IO_SW_Burst_Wait_Vil
1187                     	xdef	_TSL_IO_SW_Burst_TestSyncShift
1188                     	xdef	_TSL_IO_Acquisition
1189                     	xdef	_TSL_IO_Clamp
1190                     	xdef	_TSL_IO_Init
1191                     	xdef	_Table_SCKEY_BITS
1192  0008               _sTouchIO:
1193  0008 000000000000  	ds.b	9
1194                     	xdef	_sTouchIO
1195                     	xref.b	c_x
1196                     	xref.b	c_y
1216                     	xref	c_lgursh
1217                     	xref	c_lgadd
1218                     	xref	c_uitolx
1219                     	xref	c_cmulx
1220                     	xref	c_rtol
1221                     	xref	c_umul
1222                     	end

⌨️ 快捷键说明

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