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

📄 stm8s_tim3.ls

📁 STM8S105 BLDC源代码
💻 LS
📖 第 1 页 / 共 4 页
字号:
3037                     ; 1235   return (FlagStatus)bitstatus;
3041  02fa 5b03          	addw	sp,#3
3042  02fc 81            	ret	
3077                     ; 1259 void TIM3_ClearFlag(TIM3_FLAG_TypeDef TIM3_FLAG)
3077                     ; 1260 {
3078                     	switch	.text
3079  02fd               _TIM3_ClearFlag:
3081  02fd 89            	pushw	x
3082       00000000      OFST:	set	0
3085                     ; 1262   assert_param(IS_TIM3_CLEAR_FLAG_OK(TIM3_FLAG));
3087                     ; 1265   TIM3->SR1 = (u8)(~((u8)(TIM3_FLAG)));
3089  02fe 9f            	ld	a,xl
3090  02ff 43            	cpl	a
3091  0300 c75322        	ld	21282,a
3092                     ; 1266   TIM3->SR2 = (u8)(~((u8)(TIM3_FLAG >> 8)));
3094  0303 7b01          	ld	a,(OFST+1,sp)
3095  0305 43            	cpl	a
3096  0306 c75323        	ld	21283,a
3097                     ; 1267 }
3100  0309 85            	popw	x
3101  030a 81            	ret	
3165                     ; 1290 ITStatus TIM3_GetITStatus(TIM3_IT_TypeDef TIM3_IT)
3165                     ; 1291 {
3166                     	switch	.text
3167  030b               _TIM3_GetITStatus:
3169  030b 88            	push	a
3170  030c 89            	pushw	x
3171       00000002      OFST:	set	2
3174                     ; 1292   ITStatus bitstatus = RESET;
3176                     ; 1294   u8 TIM3_itStatus = 0x0, TIM3_itEnable = 0x0;
3180                     ; 1297   assert_param(IS_TIM3_GET_IT_OK(TIM3_IT));
3182                     ; 1299   TIM3_itStatus = (u8)(TIM3->SR1 & TIM3_IT);
3184  030d c45322        	and	a,21282
3185  0310 6b01          	ld	(OFST-1,sp),a
3186                     ; 1301   TIM3_itEnable = (u8)(TIM3->IER & TIM3_IT);
3188  0312 c65321        	ld	a,21281
3189  0315 1403          	and	a,(OFST+1,sp)
3190  0317 6b02          	ld	(OFST+0,sp),a
3191                     ; 1303   if ((TIM3_itStatus != (u8)RESET ) && (TIM3_itEnable != (u8)RESET ))
3193  0319 7b01          	ld	a,(OFST-1,sp)
3194  031b 2708          	jreq	L1551
3196  031d 7b02          	ld	a,(OFST+0,sp)
3197  031f 2704          	jreq	L1551
3198                     ; 1305     bitstatus = SET;
3200  0321 a601          	ld	a,#1
3202  0323 2001          	jra	L3551
3203  0325               L1551:
3204                     ; 1309     bitstatus = RESET;
3206  0325 4f            	clr	a
3207  0326               L3551:
3208                     ; 1311   return (ITStatus)(bitstatus);
3212  0326 5b03          	addw	sp,#3
3213  0328 81            	ret	
3249                     ; 1333 void TIM3_ClearITPendingBit(TIM3_IT_TypeDef TIM3_IT)
3249                     ; 1334 {
3250                     	switch	.text
3251  0329               _TIM3_ClearITPendingBit:
3255                     ; 1336   assert_param(IS_TIM3_IT_OK(TIM3_IT));
3257                     ; 1339   TIM3->SR1 = (u8)(~TIM3_IT);
3259  0329 43            	cpl	a
3260  032a c75322        	ld	21282,a
3261                     ; 1340 }
3264  032d 81            	ret	
3316                     ; 1368 static void TI1_Config(u8 TIM3_ICPolarity,
3316                     ; 1369                        u8 TIM3_ICSelection,
3316                     ; 1370                        u8 TIM3_ICFilter)
3316                     ; 1371 {
3317                     	switch	.text
3318  032e               L3_TI1_Config:
3320  032e 89            	pushw	x
3321       00000001      OFST:	set	1
3324                     ; 1373   TIM3->CCER1 &= (u8)(~TIM3_CCER1_CC1E);
3326  032f 72115327      	bres	21287,#0
3327  0333 88            	push	a
3328                     ; 1376   TIM3->CCMR1 = (u8)((TIM3->CCMR1 & (u8)(~( TIM3_CCMR_CCxS     |        TIM3_CCMR_ICxF    ))) | (u8)(( (TIM3_ICSelection)) | ((u8)( TIM3_ICFilter << 4))));
3330  0334 7b06          	ld	a,(OFST+5,sp)
3331  0336 97            	ld	xl,a
3332  0337 a610          	ld	a,#16
3333  0339 42            	mul	x,a
3334  033a 9f            	ld	a,xl
3335  033b 1a03          	or	a,(OFST+2,sp)
3336  033d 6b01          	ld	(OFST+0,sp),a
3337  033f c65325        	ld	a,21285
3338  0342 a40c          	and	a,#12
3339  0344 1a01          	or	a,(OFST+0,sp)
3340  0346 c75325        	ld	21285,a
3341                     ; 1379   if (TIM3_ICPolarity != TIM3_ICPOLARITY_RISING)
3343  0349 7b02          	ld	a,(OFST+1,sp)
3344  034b 2706          	jreq	L1261
3345                     ; 1381     TIM3->CCER1 |= TIM3_CCER1_CC1P;
3347  034d 72125327      	bset	21287,#1
3349  0351 2004          	jra	L3261
3350  0353               L1261:
3351                     ; 1385     TIM3->CCER1 &= (u8)(~TIM3_CCER1_CC1P);
3353  0353 72135327      	bres	21287,#1
3354  0357               L3261:
3355                     ; 1388   TIM3->CCER1 |= TIM3_CCER1_CC1E;
3357  0357 72105327      	bset	21287,#0
3358                     ; 1389 }
3361  035b 5b03          	addw	sp,#3
3362  035d 81            	ret	
3414                     ; 1417 static void TI2_Config(u8 TIM3_ICPolarity,
3414                     ; 1418                        u8 TIM3_ICSelection,
3414                     ; 1419                        u8 TIM3_ICFilter)
3414                     ; 1420 {
3415                     	switch	.text
3416  035e               L5_TI2_Config:
3418  035e 89            	pushw	x
3419       00000001      OFST:	set	1
3422                     ; 1422   TIM3->CCER1 &=  (u8)(~TIM3_CCER1_CC2E);
3424  035f 72195327      	bres	21287,#4
3425  0363 88            	push	a
3426                     ; 1425   TIM3->CCMR2 = (u8)((TIM3->CCMR2 & (u8)(~( TIM3_CCMR_CCxS     |        TIM3_CCMR_ICxF    ))) | (u8)(( (TIM3_ICSelection)) | ((u8)( TIM3_ICFilter << 4))));
3428  0364 7b06          	ld	a,(OFST+5,sp)
3429  0366 97            	ld	xl,a
3430  0367 a610          	ld	a,#16
3431  0369 42            	mul	x,a
3432  036a 9f            	ld	a,xl
3433  036b 1a03          	or	a,(OFST+2,sp)
3434  036d 6b01          	ld	(OFST+0,sp),a
3435  036f c65326        	ld	a,21286
3436  0372 a40c          	and	a,#12
3437  0374 1a01          	or	a,(OFST+0,sp)
3438  0376 c75326        	ld	21286,a
3439                     ; 1429   if (TIM3_ICPolarity != TIM3_ICPOLARITY_RISING)
3441  0379 7b02          	ld	a,(OFST+1,sp)
3442  037b 2706          	jreq	L3561
3443                     ; 1431     TIM3->CCER1 |= TIM3_CCER1_CC2P;
3445  037d 721a5327      	bset	21287,#5
3447  0381 2004          	jra	L5561
3448  0383               L3561:
3449                     ; 1435     TIM3->CCER1 &= (u8)(~TIM3_CCER1_CC2P);
3451  0383 721b5327      	bres	21287,#5
3452  0387               L5561:
3453                     ; 1439   TIM3->CCER1 |= TIM3_CCER1_CC2E;
3455  0387 72185327      	bset	21287,#4
3456                     ; 1441 }
3459  038b 5b03          	addw	sp,#3
3460  038d 81            	ret	
3527                     ; 1461 u32 TIM3_ComputeLsiClockFreq(u32 TimerClockFreq)
3527                     ; 1462 {
3528                     	switch	.text
3529  038e               _TIM3_ComputeLsiClockFreq:
3531  038e 520c          	subw	sp,#12
3532       0000000c      OFST:	set	12
3535                     ; 1467   TIM3_ICInit(TIM3_CHANNEL_1, TIM3_ICPOLARITY_RISING, TIM3_ICSELECTION_DIRECTTI, TIM3_ICPSC_DIV8, 0);
3537  0390 4b00          	push	#0
3538  0392 4b0c          	push	#12
3539  0394 4b01          	push	#1
3540  0396 5f            	clrw	x
3541  0397 cd00b9        	call	_TIM3_ICInit
3543  039a 5b03          	addw	sp,#3
3544                     ; 1471   TIM3_ITConfig(TIM3_IT_CC1, ENABLE);
3546  039c ae0201        	ldw	x,#513
3547  039f cd0161        	call	_TIM3_ITConfig
3549                     ; 1474   TIM3_Cmd(ENABLE);
3551  03a2 a601          	ld	a,#1
3552  03a4 cd0154        	call	_TIM3_Cmd
3554                     ; 1476   TIM3->SR1 = 0x00;
3556  03a7 725f5322      	clr	21282
3557                     ; 1477   TIM3->SR2 = 0x00;
3559  03ab 725f5323      	clr	21283
3560                     ; 1480   TIM3_ClearFlag(TIM3_FLAG_CC1);
3562  03af ae0002        	ldw	x,#2
3563  03b2 cd02fd        	call	_TIM3_ClearFlag
3566  03b5               L3171:
3567                     ; 1483   while ((TIM3->SR1 & TIM3_FLAG_CC1) != TIM3_FLAG_CC1);
3569  03b5 72035322fb    	btjf	21282,#1,L3171
3570                     ; 1485   ICValue1 = TIM3_GetCapture1();
3572  03ba cd028e        	call	_TIM3_GetCapture1
3574  03bd 1f09          	ldw	(OFST-3,sp),x
3575                     ; 1486   TIM3_ClearFlag(TIM3_FLAG_CC1);
3577  03bf ae0002        	ldw	x,#2
3578  03c2 cd02fd        	call	_TIM3_ClearFlag
3581  03c5               L1271:
3582                     ; 1489   while ((TIM3->SR1 & TIM3_FLAG_CC1) != TIM3_FLAG_CC1);
3584  03c5 72035322fb    	btjf	21282,#1,L1271
3585                     ; 1491   ICValue2 = TIM3_GetCapture1();
3587  03ca cd028e        	call	_TIM3_GetCapture1
3589  03cd 1f0b          	ldw	(OFST-1,sp),x
3590                     ; 1492   TIM3_ClearFlag(TIM3_FLAG_CC1);
3592  03cf ae0002        	ldw	x,#2
3593  03d2 cd02fd        	call	_TIM3_ClearFlag
3595                     ; 1495   TIM3->CCER1 &= (u8)(~TIM3_CCER1_CC1E);
3597  03d5 72115327      	bres	21287,#0
3598                     ; 1497   TIM3->CCMR1 = 0x00;
3600  03d9 725f5325      	clr	21285
3601                     ; 1499   TIM3_Cmd(DISABLE);
3603  03dd 4f            	clr	a
3604  03de cd0154        	call	_TIM3_Cmd
3606                     ; 1502   LSIClockFreq = (8 * TimerClockFreq) / (ICValue2 - ICValue1);
3608  03e1 1e0b          	ldw	x,(OFST-1,sp)
3609  03e3 72f009        	subw	x,(OFST-3,sp)
3610  03e6 cd0000        	call	c_uitolx
3612  03e9 96            	ldw	x,sp
3613  03ea 5c            	incw	x
3614  03eb cd0000        	call	c_rtol
3616  03ee 96            	ldw	x,sp
3617  03ef 1c000f        	addw	x,#OFST+3
3618  03f2 cd0000        	call	c_ltor
3620  03f5 a603          	ld	a,#3
3621  03f7 cd0000        	call	c_llsh
3623  03fa 96            	ldw	x,sp
3624  03fb 5c            	incw	x
3625  03fc cd0000        	call	c_ludv
3627  03ff 96            	ldw	x,sp
3628  0400 1c0005        	addw	x,#OFST-7
3629  0403 cd0000        	call	c_rtol
3631                     ; 1503   return (u32)LSIClockFreq;
3633  0406 96            	ldw	x,sp
3634  0407 1c0005        	addw	x,#OFST-7
3635  040a cd0000        	call	c_ltor
3639  040d 5b0c          	addw	sp,#12
3640  040f 81            	ret	
3653                     	xdef	_TIM3_ComputeLsiClockFreq
3654                     	xdef	_TIM3_ClearITPendingBit
3655                     	xdef	_TIM3_GetITStatus
3656                     	xdef	_TIM3_ClearFlag
3657                     	xdef	_TIM3_GetFlagStatus
3658                     	xdef	_TIM3_GetPrescaler
3659                     	xdef	_TIM3_GetCounter
3660                     	xdef	_TIM3_GetCapture2
3661                     	xdef	_TIM3_GetCapture1
3662                     	xdef	_TIM3_SetIC2Prescaler
3663                     	xdef	_TIM3_SetIC1Prescaler
3664                     	xdef	_TIM3_SetCompare2
3665                     	xdef	_TIM3_SetCompare1
3666                     	xdef	_TIM3_SetAutoreload
3667                     	xdef	_TIM3_SetCounter
3668                     	xdef	_TIM3_SelectOCxM
3669                     	xdef	_TIM3_CCxCmd
3670                     	xdef	_TIM3_OC2PolarityConfig
3671                     	xdef	_TIM3_OC1PolarityConfig
3672                     	xdef	_TIM3_GenerateEvent
3673                     	xdef	_TIM3_OC2PreloadConfig
3674                     	xdef	_TIM3_OC1PreloadConfig
3675                     	xdef	_TIM3_ARRPreloadConfig
3676                     	xdef	_TIM3_ForcedOC2Config
3677                     	xdef	_TIM3_ForcedOC1Config
3678                     	xdef	_TIM3_PrescalerConfig
3679                     	xdef	_TIM3_SelectOnePulseMode
3680                     	xdef	_TIM3_UpdateRequestConfig
3681                     	xdef	_TIM3_UpdateDisableConfig
3682                     	xdef	_TIM3_ITConfig
3683                     	xdef	_TIM3_Cmd
3684                     	xdef	_TIM3_PWMIConfig
3685                     	xdef	_TIM3_ICInit
3686                     	xdef	_TIM3_OC2Init
3687                     	xdef	_TIM3_OC1Init
3688                     	xdef	_TIM3_TimeBaseInit
3689                     	xdef	_TIM3_DeInit
3690                     	xref.b	c_x
3709                     	xref	c_ludv
3710                     	xref	c_rtol
3711                     	xref	c_uitolx
3712                     	xref	c_llsh
3713                     	xref	c_ltor
3714                     	end

⌨️ 快捷键说明

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