📄 stm8s_tim3.ls
字号:
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 + -