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

📄 stm8s_tim3.ls

📁 STM8-触摸例程
💻 LS
📖 第 1 页 / 共 4 页
字号:
3067  0301 89            	pushw	x
3068       00000000      OFST:	set	0
3071                     ; 1262   assert_param(IS_TIM3_CLEAR_FLAG_OK(TIM3_FLAG));
3073                     ; 1265   TIM3->SR1 = (u8)(~((u8)(TIM3_FLAG)));
3075  0302 9f            	ld	a,xl
3076  0303 43            	cpl	a
3077  0304 c75322        	ld	21282,a
3078                     ; 1266   TIM3->SR2 = (u8)(~((u8)(TIM3_FLAG >> 8)));
3080  0307 7b01          	ld	a,(OFST+1,sp)
3081  0309 43            	cpl	a
3082  030a c75323        	ld	21283,a
3083                     ; 1267 }
3086  030d 85            	popw	x
3087  030e 81            	ret	
3151                     ; 1290 ITStatus TIM3_GetITStatus(TIM3_IT_TypeDef TIM3_IT)
3151                     ; 1291 {
3152                     	switch	.text
3153  030f               _TIM3_GetITStatus:
3155  030f 88            	push	a
3156  0310 89            	pushw	x
3157       00000002      OFST:	set	2
3160                     ; 1292   ITStatus bitstatus = RESET;
3162                     ; 1294   u8 TIM3_itStatus = 0x0, TIM3_itEnable = 0x0;
3166  0311 7b02          	ld	a,(OFST+0,sp)
3167  0313 97            	ld	xl,a
3168                     ; 1297   assert_param(IS_TIM3_GET_IT_OK(TIM3_IT));
3170                     ; 1299   TIM3_itStatus = (u8)(TIM3->SR1 & TIM3_IT);
3172  0314 c65322        	ld	a,21282
3173  0317 1403          	and	a,(OFST+1,sp)
3174  0319 6b01          	ld	(OFST-1,sp),a
3175                     ; 1301   TIM3_itEnable = (u8)(TIM3->IER & TIM3_IT);
3177  031b c65321        	ld	a,21281
3178  031e 1403          	and	a,(OFST+1,sp)
3179  0320 6b02          	ld	(OFST+0,sp),a
3180                     ; 1303   if ((TIM3_itStatus != (u8)RESET ) && (TIM3_itEnable != (u8)RESET ))
3182  0322 7b01          	ld	a,(OFST-1,sp)
3183  0324 2708          	jreq	L1551
3185  0326 7b02          	ld	a,(OFST+0,sp)
3186  0328 2704          	jreq	L1551
3187                     ; 1305     bitstatus = SET;
3189  032a a601          	ld	a,#1
3191  032c 2001          	jra	L3551
3192  032e               L1551:
3193                     ; 1309     bitstatus = RESET;
3195  032e 4f            	clr	a
3196  032f               L3551:
3197                     ; 1311   return (ITStatus)(bitstatus);
3201  032f 5b03          	addw	sp,#3
3202  0331 81            	ret	
3238                     ; 1333 void TIM3_ClearITPendingBit(TIM3_IT_TypeDef TIM3_IT)
3238                     ; 1334 {
3239                     	switch	.text
3240  0332               _TIM3_ClearITPendingBit:
3244                     ; 1336   assert_param(IS_TIM3_IT_OK(TIM3_IT));
3246                     ; 1339   TIM3->SR1 = (u8)(~TIM3_IT);
3248  0332 43            	cpl	a
3249  0333 c75322        	ld	21282,a
3250                     ; 1340 }
3253  0336 81            	ret	
3305                     ; 1368 static void TI1_Config(u8 TIM3_ICPolarity,
3305                     ; 1369                        u8 TIM3_ICSelection,
3305                     ; 1370                        u8 TIM3_ICFilter)
3305                     ; 1371 {
3306                     	switch	.text
3307  0337               L3_TI1_Config:
3309  0337 89            	pushw	x
3310       00000001      OFST:	set	1
3313                     ; 1373   TIM3->CCER1 &= (u8)(~TIM3_CCER1_CC1E);
3315  0338 72115327      	bres	21287,#0
3316  033c 88            	push	a
3317                     ; 1376   TIM3->CCMR1 = (u8)((TIM3->CCMR1 & (u8)(~( TIM3_CCMR_CCxS     |        TIM3_CCMR_ICxF    ))) | (u8)(( (TIM3_ICSelection)) | ((u8)( TIM3_ICFilter << 4))));
3319  033d 7b06          	ld	a,(OFST+5,sp)
3320  033f 97            	ld	xl,a
3321  0340 a610          	ld	a,#16
3322  0342 42            	mul	x,a
3323  0343 9f            	ld	a,xl
3324  0344 1a03          	or	a,(OFST+2,sp)
3325  0346 6b01          	ld	(OFST+0,sp),a
3326  0348 c65325        	ld	a,21285
3327  034b a40c          	and	a,#12
3328  034d 1a01          	or	a,(OFST+0,sp)
3329  034f c75325        	ld	21285,a
3330                     ; 1379   if (TIM3_ICPolarity != TIM3_ICPOLARITY_RISING)
3332  0352 7b02          	ld	a,(OFST+1,sp)
3333  0354 2706          	jreq	L1261
3334                     ; 1381     TIM3->CCER1 |= TIM3_CCER1_CC1P;
3336  0356 72125327      	bset	21287,#1
3338  035a 2004          	jra	L3261
3339  035c               L1261:
3340                     ; 1385     TIM3->CCER1 &= (u8)(~TIM3_CCER1_CC1P);
3342  035c 72135327      	bres	21287,#1
3343  0360               L3261:
3344                     ; 1388   TIM3->CCER1 |= TIM3_CCER1_CC1E;
3346  0360 72105327      	bset	21287,#0
3347                     ; 1389 }
3350  0364 5b03          	addw	sp,#3
3351  0366 81            	ret	
3403                     ; 1417 static void TI2_Config(u8 TIM3_ICPolarity,
3403                     ; 1418                        u8 TIM3_ICSelection,
3403                     ; 1419                        u8 TIM3_ICFilter)
3403                     ; 1420 {
3404                     	switch	.text
3405  0367               L5_TI2_Config:
3407  0367 89            	pushw	x
3408       00000001      OFST:	set	1
3411                     ; 1422   TIM3->CCER1 &=  (u8)(~TIM3_CCER1_CC2E);
3413  0368 72195327      	bres	21287,#4
3414  036c 88            	push	a
3415                     ; 1425   TIM3->CCMR2 = (u8)((TIM3->CCMR2 & (u8)(~( TIM3_CCMR_CCxS     |        TIM3_CCMR_ICxF    ))) | (u8)(( (TIM3_ICSelection)) | ((u8)( TIM3_ICFilter << 4))));
3417  036d 7b06          	ld	a,(OFST+5,sp)
3418  036f 97            	ld	xl,a
3419  0370 a610          	ld	a,#16
3420  0372 42            	mul	x,a
3421  0373 9f            	ld	a,xl
3422  0374 1a03          	or	a,(OFST+2,sp)
3423  0376 6b01          	ld	(OFST+0,sp),a
3424  0378 c65326        	ld	a,21286
3425  037b a40c          	and	a,#12
3426  037d 1a01          	or	a,(OFST+0,sp)
3427  037f c75326        	ld	21286,a
3428                     ; 1429   if (TIM3_ICPolarity != TIM3_ICPOLARITY_RISING)
3430  0382 7b02          	ld	a,(OFST+1,sp)
3431  0384 2706          	jreq	L3561
3432                     ; 1431     TIM3->CCER1 |= TIM3_CCER1_CC2P;
3434  0386 721a5327      	bset	21287,#5
3436  038a 2004          	jra	L5561
3437  038c               L3561:
3438                     ; 1435     TIM3->CCER1 &= (u8)(~TIM3_CCER1_CC2P);
3440  038c 721b5327      	bres	21287,#5
3441  0390               L5561:
3442                     ; 1439   TIM3->CCER1 |= TIM3_CCER1_CC2E;
3444  0390 72185327      	bset	21287,#4
3445                     ; 1441 }
3448  0394 5b03          	addw	sp,#3
3449  0396 81            	ret	
3516                     ; 1461 u32 TIM3_ComputeLsiClockFreq(u32 TimerClockFreq)
3516                     ; 1462 {
3517                     	switch	.text
3518  0397               _TIM3_ComputeLsiClockFreq:
3520  0397 520c          	subw	sp,#12
3521       0000000c      OFST:	set	12
3524                     ; 1467   TIM3_ICInit(TIM3_CHANNEL_1, TIM3_ICPOLARITY_RISING, TIM3_ICSELECTION_DIRECTTI, TIM3_ICPSC_DIV8, 0);
3526  0399 4b00          	push	#0
3527  039b 4b0c          	push	#12
3528  039d 4b01          	push	#1
3529  039f 5f            	clrw	x
3530  03a0 4f            	clr	a
3531  03a1 95            	ld	xh,a
3532  03a2 cd00b9        	call	_TIM3_ICInit
3534  03a5 5b03          	addw	sp,#3
3535                     ; 1471   TIM3_ITConfig(TIM3_IT_CC1, ENABLE);
3537  03a7 ae0001        	ldw	x,#1
3538  03aa a602          	ld	a,#2
3539  03ac 95            	ld	xh,a
3540  03ad cd0162        	call	_TIM3_ITConfig
3542                     ; 1474   TIM3_Cmd(ENABLE);
3544  03b0 a601          	ld	a,#1
3545  03b2 cd0155        	call	_TIM3_Cmd
3547                     ; 1476   TIM3->SR1 = 0x00;
3549  03b5 725f5322      	clr	21282
3550                     ; 1477   TIM3->SR2 = 0x00;
3552  03b9 725f5323      	clr	21283
3553                     ; 1480   TIM3_ClearFlag(TIM3_FLAG_CC1);
3555  03bd ae0002        	ldw	x,#2
3556  03c0 cd0301        	call	_TIM3_ClearFlag
3559  03c3               L3171:
3560                     ; 1483   while ((TIM3->SR1 & TIM3_FLAG_CC1) != TIM3_FLAG_CC1);
3562  03c3 72035322fb    	btjf	21282,#1,L3171
3563                     ; 1485   ICValue1 = TIM3_GetCapture1();
3565  03c8 cd028f        	call	_TIM3_GetCapture1
3567  03cb 1f09          	ldw	(OFST-3,sp),x
3568                     ; 1486   TIM3_ClearFlag(TIM3_FLAG_CC1);
3570  03cd ae0002        	ldw	x,#2
3571  03d0 cd0301        	call	_TIM3_ClearFlag
3574  03d3               L1271:
3575                     ; 1489   while ((TIM3->SR1 & TIM3_FLAG_CC1) != TIM3_FLAG_CC1);
3577  03d3 72035322fb    	btjf	21282,#1,L1271
3578                     ; 1491   ICValue2 = TIM3_GetCapture1();
3580  03d8 cd028f        	call	_TIM3_GetCapture1
3582  03db 1f0b          	ldw	(OFST-1,sp),x
3583                     ; 1492   TIM3_ClearFlag(TIM3_FLAG_CC1);
3585  03dd ae0002        	ldw	x,#2
3586  03e0 cd0301        	call	_TIM3_ClearFlag
3588                     ; 1495   TIM3->CCER1 &= (u8)(~TIM3_CCER1_CC1E);
3590  03e3 72115327      	bres	21287,#0
3591                     ; 1497   TIM3->CCMR1 = 0x00;
3593  03e7 725f5325      	clr	21285
3594                     ; 1499   TIM3_Cmd(DISABLE);
3596  03eb 4f            	clr	a
3597  03ec cd0155        	call	_TIM3_Cmd
3599                     ; 1502   LSIClockFreq = (8 * TimerClockFreq) / (ICValue2 - ICValue1);
3601  03ef 1e0b          	ldw	x,(OFST-1,sp)
3602  03f1 72f009        	subw	x,(OFST-3,sp)
3603  03f4 cd0000        	call	c_uitolx
3605  03f7 96            	ldw	x,sp
3606  03f8 5c            	incw	x
3607  03f9 cd0000        	call	c_rtol
3609  03fc 96            	ldw	x,sp
3610  03fd 1c000f        	addw	x,#OFST+3
3611  0400 cd0000        	call	c_ltor
3613  0403 a603          	ld	a,#3
3614  0405 cd0000        	call	c_llsh
3616  0408 96            	ldw	x,sp
3617  0409 5c            	incw	x
3618  040a cd0000        	call	c_ludv
3620  040d 96            	ldw	x,sp
3621  040e 1c0005        	addw	x,#OFST-7
3622  0411 cd0000        	call	c_rtol
3624                     ; 1503   return (u32)LSIClockFreq;
3626  0414 96            	ldw	x,sp
3627  0415 1c0005        	addw	x,#OFST-7
3628  0418 cd0000        	call	c_ltor
3632  041b 5b0c          	addw	sp,#12
3633  041d 81            	ret	
3646                     	xdef	_TIM3_ComputeLsiClockFreq
3647                     	xdef	_TIM3_ClearITPendingBit
3648                     	xdef	_TIM3_GetITStatus
3649                     	xdef	_TIM3_ClearFlag
3650                     	xdef	_TIM3_GetFlagStatus
3651                     	xdef	_TIM3_GetPrescaler
3652                     	xdef	_TIM3_GetCounter
3653                     	xdef	_TIM3_GetCapture2
3654                     	xdef	_TIM3_GetCapture1
3655                     	xdef	_TIM3_SetIC2Prescaler
3656                     	xdef	_TIM3_SetIC1Prescaler
3657                     	xdef	_TIM3_SetCompare2
3658                     	xdef	_TIM3_SetCompare1
3659                     	xdef	_TIM3_SetAutoreload
3660                     	xdef	_TIM3_SetCounter
3661                     	xdef	_TIM3_SelectOCxM
3662                     	xdef	_TIM3_CCxCmd
3663                     	xdef	_TIM3_OC2PolarityConfig
3664                     	xdef	_TIM3_OC1PolarityConfig
3665                     	xdef	_TIM3_GenerateEvent
3666                     	xdef	_TIM3_OC2PreloadConfig
3667                     	xdef	_TIM3_OC1PreloadConfig
3668                     	xdef	_TIM3_ARRPreloadConfig
3669                     	xdef	_TIM3_ForcedOC2Config
3670                     	xdef	_TIM3_ForcedOC1Config
3671                     	xdef	_TIM3_PrescalerConfig
3672                     	xdef	_TIM3_SelectOnePulseMode
3673                     	xdef	_TIM3_UpdateRequestConfig
3674                     	xdef	_TIM3_UpdateDisableConfig
3675                     	xdef	_TIM3_ITConfig
3676                     	xdef	_TIM3_Cmd
3677                     	xdef	_TIM3_PWMIConfig
3678                     	xdef	_TIM3_ICInit
3679                     	xdef	_TIM3_OC2Init
3680                     	xdef	_TIM3_OC1Init
3681                     	xdef	_TIM3_TimeBaseInit
3682                     	xdef	_TIM3_DeInit
3683                     	xref.b	c_x
3702                     	xref	c_ludv
3703                     	xref	c_rtol
3704                     	xref	c_uitolx
3705                     	xref	c_llsh
3706                     	xref	c_ltor
3707                     	end

⌨️ 快捷键说明

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