📄 stm8s_tim2.ls
字号:
3345 038d _TIM2_GetCapture3:
3347 038d 5204 subw sp,#4
3348 00000004 OFST: set 4
3351 ; 1409 u16 tmpccr3 = 0;
3353 ; 1410 u8 tmpccr3l=0, tmpccr3h=0;
3357 ; 1412 tmpccr3h = TIM2->CCR3H;
3359 038f c65313 ld a,21267
3360 0392 6b02 ld (OFST-2,sp),a
3361 ; 1413 tmpccr3l = TIM2->CCR3L;
3363 0394 c65314 ld a,21268
3364 0397 6b01 ld (OFST-3,sp),a
3365 ; 1415 tmpccr3 = (u16)(tmpccr3l);
3367 0399 5f clrw x
3368 039a 97 ld xl,a
3369 039b 1f03 ldw (OFST-1,sp),x
3370 ; 1416 tmpccr3 |= (u16)((u16)tmpccr3h << 8);
3372 039d 5f clrw x
3373 039e 7b02 ld a,(OFST-2,sp)
3374 03a0 97 ld xl,a
3375 03a1 7b04 ld a,(OFST+0,sp)
3376 03a3 01 rrwa x,a
3377 03a4 1a03 or a,(OFST-1,sp)
3378 03a6 01 rrwa x,a
3379 ; 1418 return (u16)tmpccr3;
3383 03a7 5b04 addw sp,#4
3384 03a9 81 ret
3407 ; 1437 u16 TIM2_GetCounter(void)
3407 ; 1438 {
3408 switch .text
3409 03aa _TIM2_GetCounter:
3411 03aa 89 pushw x
3412 00000002 OFST: set 2
3415 ; 1440 return (u16)(((u16)TIM2->CNTRH << 8) | (u16)(TIM2->CNTRL));
3417 03ab c6530b ld a,21259
3418 03ae 5f clrw x
3419 03af 97 ld xl,a
3420 03b0 1f01 ldw (OFST-1,sp),x
3421 03b2 5f clrw x
3422 03b3 c6530a ld a,21258
3423 03b6 97 ld xl,a
3424 03b7 7b02 ld a,(OFST+0,sp)
3425 03b9 01 rrwa x,a
3426 03ba 1a01 or a,(OFST-1,sp)
3427 03bc 01 rrwa x,a
3430 03bd 5b02 addw sp,#2
3431 03bf 81 ret
3455 ; 1460 TIM2_Prescaler_TypeDef TIM2_GetPrescaler(void)
3455 ; 1461 {
3456 switch .text
3457 03c0 _TIM2_GetPrescaler:
3461 ; 1463 return (TIM2_Prescaler_TypeDef)(TIM2->PSCR);
3463 03c0 c6530c ld a,21260
3466 03c3 81 ret
3605 ; 1490 FlagStatus TIM2_GetFlagStatus(TIM2_FLAG_TypeDef TIM2_FLAG)
3605 ; 1491 {
3606 switch .text
3607 03c4 _TIM2_GetFlagStatus:
3609 03c4 5203 subw sp,#3
3610 00000003 OFST: set 3
3613 ; 1492 FlagStatus bitstatus = RESET;
3615 ; 1496 assert_param(IS_TIM2_GET_FLAG_OK(TIM2_FLAG));
3617 ; 1498 tim2_flag_l = (u8)(TIM2_FLAG);
3619 03c6 9f ld a,xl
3620 03c7 6b02 ld (OFST-1,sp),a
3621 ; 1499 tim2_flag_h = (u8)(TIM2_FLAG >> 8);
3623 03c9 9e ld a,xh
3624 03ca 6b03 ld (OFST+0,sp),a
3625 ; 1501 if (((TIM2->SR1 & tim2_flag_l) | (TIM2->SR2 & tim2_flag_h)) != (u8)RESET )
3627 03cc c45303 and a,21251
3628 03cf 6b01 ld (OFST-2,sp),a
3629 03d1 c65302 ld a,21250
3630 03d4 1402 and a,(OFST-1,sp)
3631 03d6 1a01 or a,(OFST-2,sp)
3632 03d8 2702 jreq L7271
3633 ; 1503 bitstatus = SET;
3635 03da a601 ld a,#1
3637 03dc L7271:
3638 ; 1507 bitstatus = RESET;
3640 ; 1509 return (FlagStatus)bitstatus;
3644 03dc 5b03 addw sp,#3
3645 03de 81 ret
3680 ; 1535 void TIM2_ClearFlag(TIM2_FLAG_TypeDef TIM2_FLAG)
3680 ; 1536 {
3681 switch .text
3682 03df _TIM2_ClearFlag:
3684 03df 89 pushw x
3685 00000000 OFST: set 0
3688 ; 1538 assert_param(IS_TIM2_CLEAR_FLAG_OK(TIM2_FLAG));
3690 ; 1541 TIM2->SR1 = (u8)(~((u8)(TIM2_FLAG)));
3692 03e0 9f ld a,xl
3693 03e1 43 cpl a
3694 03e2 c75302 ld 21250,a
3695 ; 1542 TIM2->SR2 = (u8)(~((u8)(TIM2_FLAG >> 8)));
3697 03e5 7b01 ld a,(OFST+1,sp)
3698 03e7 43 cpl a
3699 03e8 c75303 ld 21251,a
3700 ; 1543 }
3703 03eb 85 popw x
3704 03ec 81 ret
3768 ; 1567 ITStatus TIM2_GetITStatus(TIM2_IT_TypeDef TIM2_IT)
3768 ; 1568 {
3769 switch .text
3770 03ed _TIM2_GetITStatus:
3772 03ed 88 push a
3773 03ee 89 pushw x
3774 00000002 OFST: set 2
3777 ; 1569 ITStatus bitstatus = RESET;
3779 ; 1571 u8 TIM2_itStatus = 0x0, TIM2_itEnable = 0x0;
3783 ; 1574 assert_param(IS_TIM2_GET_IT_OK(TIM2_IT));
3785 ; 1576 TIM2_itStatus = (u8)(TIM2->SR1 & TIM2_IT);
3787 03ef c45302 and a,21250
3788 03f2 6b01 ld (OFST-1,sp),a
3789 ; 1578 TIM2_itEnable = (u8)(TIM2->IER & TIM2_IT);
3791 03f4 c65301 ld a,21249
3792 03f7 1403 and a,(OFST+1,sp)
3793 03f9 6b02 ld (OFST+0,sp),a
3794 ; 1580 if ((TIM2_itStatus != (u8)RESET ) && (TIM2_itEnable != (u8)RESET ))
3796 03fb 7b01 ld a,(OFST-1,sp)
3797 03fd 2708 jreq L3002
3799 03ff 7b02 ld a,(OFST+0,sp)
3800 0401 2704 jreq L3002
3801 ; 1582 bitstatus = SET;
3803 0403 a601 ld a,#1
3805 0405 2001 jra L5002
3806 0407 L3002:
3807 ; 1586 bitstatus = RESET;
3809 0407 4f clr a
3810 0408 L5002:
3811 ; 1588 return (ITStatus)(bitstatus);
3815 0408 5b03 addw sp,#3
3816 040a 81 ret
3852 ; 1611 void TIM2_ClearITPendingBit(TIM2_IT_TypeDef TIM2_IT)
3852 ; 1612 {
3853 switch .text
3854 040b _TIM2_ClearITPendingBit:
3858 ; 1614 assert_param(IS_TIM2_IT_OK(TIM2_IT));
3860 ; 1617 TIM2->SR1 = (u8)(~TIM2_IT);
3862 040b 43 cpl a
3863 040c c75302 ld 21250,a
3864 ; 1618 }
3867 040f 81 ret
3919 ; 1646 static void TI1_Config(u8 TIM2_ICPolarity,
3919 ; 1647 u8 TIM2_ICSelection,
3919 ; 1648 u8 TIM2_ICFilter)
3919 ; 1649 {
3920 switch .text
3921 0410 L3_TI1_Config:
3923 0410 89 pushw x
3924 00000001 OFST: set 1
3927 ; 1651 TIM2->CCER1 &= (u8)(~TIM2_CCER1_CC1E);
3929 0411 72115308 bres 21256,#0
3930 0415 88 push a
3931 ; 1654 TIM2->CCMR1 = (u8)((TIM2->CCMR1 & (u8)(~( TIM2_CCMR_CCxS | TIM2_CCMR_ICxF ))) | (u8)(( (TIM2_ICSelection)) | ((u8)( TIM2_ICFilter << 4))));
3933 0416 7b06 ld a,(OFST+5,sp)
3934 0418 97 ld xl,a
3935 0419 a610 ld a,#16
3936 041b 42 mul x,a
3937 041c 9f ld a,xl
3938 041d 1a03 or a,(OFST+2,sp)
3939 041f 6b01 ld (OFST+0,sp),a
3940 0421 c65305 ld a,21253
3941 0424 a40c and a,#12
3942 0426 1a01 or a,(OFST+0,sp)
3943 0428 c75305 ld 21253,a
3944 ; 1657 if (TIM2_ICPolarity != TIM2_ICPOLARITY_RISING)
3946 042b 7b02 ld a,(OFST+1,sp)
3947 042d 2706 jreq L3502
3948 ; 1659 TIM2->CCER1 |= TIM2_CCER1_CC1P;
3950 042f 72125308 bset 21256,#1
3952 0433 2004 jra L5502
3953 0435 L3502:
3954 ; 1663 TIM2->CCER1 &= (u8)(~TIM2_CCER1_CC1P);
3956 0435 72135308 bres 21256,#1
3957 0439 L5502:
3958 ; 1666 TIM2->CCER1 |= TIM2_CCER1_CC1E;
3960 0439 72105308 bset 21256,#0
3961 ; 1667 }
3964 043d 5b03 addw sp,#3
3965 043f 81 ret
4017 ; 1695 static void TI2_Config(u8 TIM2_ICPolarity,
4017 ; 1696 u8 TIM2_ICSelection,
4017 ; 1697 u8 TIM2_ICFilter)
4017 ; 1698 {
4018 switch .text
4019 0440 L5_TI2_Config:
4021 0440 89 pushw x
4022 00000001 OFST: set 1
4025 ; 1700 TIM2->CCER1 &= (u8)(~TIM2_CCER1_CC2E);
4027 0441 72195308 bres 21256,#4
4028 0445 88 push a
4029 ; 1703 TIM2->CCMR2 = (u8)((TIM2->CCMR2 & (u8)(~( TIM2_CCMR_CCxS | TIM2_CCMR_ICxF ))) | (u8)(( (TIM2_ICSelection)) | ((u8)( TIM2_ICFilter << 4))));
4031 0446 7b06 ld a,(OFST+5,sp)
4032 0448 97 ld xl,a
4033 0449 a610 ld a,#16
4034 044b 42 mul x,a
4035 044c 9f ld a,xl
4036 044d 1a03 or a,(OFST+2,sp)
4037 044f 6b01 ld (OFST+0,sp),a
4038 0451 c65306 ld a,21254
4039 0454 a40c and a,#12
4040 0456 1a01 or a,(OFST+0,sp)
4041 0458 c75306 ld 21254,a
4042 ; 1707 if (TIM2_ICPolarity != TIM2_ICPOLARITY_RISING)
4044 045b 7b02 ld a,(OFST+1,sp)
4045 045d 2706 jreq L5012
4046 ; 1709 TIM2->CCER1 |= TIM2_CCER1_CC2P;
4048 045f 721a5308 bset 21256,#5
4050 0463 2004 jra L7012
4051 0465 L5012:
4052 ; 1713 TIM2->CCER1 &= (u8)(~TIM2_CCER1_CC2P);
4054 0465 721b5308 bres 21256,#5
4055 0469 L7012:
4056 ; 1717 TIM2->CCER1 |= TIM2_CCER1_CC2E;
4058 0469 72185308 bset 21256,#4
4059 ; 1719 }
4062 046d 5b03 addw sp,#3
4063 046f 81 ret
4115 ; 1744 static void TI3_Config(u8 TIM2_ICPolarity, u8 TIM2_ICSelection,
4115 ; 1745 u8 TIM2_ICFilter)
4115 ; 1746 {
4116 switch .text
4117 0470 L7_TI3_Config:
4119 0470 89 pushw x
4120 00000001 OFST: set 1
4123 ; 1748 TIM2->CCER2 &= (u8)(~TIM2_CCER2_CC3E);
4125 0471 72115309 bres 21257,#0
4126 0475 88 push a
4127 ; 1751 TIM2->CCMR3 = (u8)((TIM2->CCMR3 & (u8)(~( TIM2_CCMR_CCxS | TIM2_CCMR_ICxF ))) | (u8)(( (TIM2_ICSelection)) | ((u8)( TIM2_ICFilter << 4))));
4129 0476 7b06 ld a,(OFST+5,sp)
4130 0478 97 ld xl,a
4131 0479 a610 ld a,#16
4132 047b 42 mul x,a
4133 047c 9f ld a,xl
4134 047d 1a03 or a,(OFST+2,sp)
4135 047f 6b01 ld (OFST+0,sp),a
4136 0481 c65307 ld a,21255
4137 0484 a40c and a,#12
4138 0486 1a01 or a,(OFST+0,sp)
4139 0488 c75307 ld 21255,a
4140 ; 1755 if (TIM2_ICPolarity != TIM2_ICPOLARITY_RISING)
4142 048b 7b02 ld a,(OFST+1,sp)
4143 048d 2706 jreq L7312
4144 ; 1757 TIM2->CCER2 |= TIM2_CCER2_CC3P;
4146 048f 72125309 bset 21257,#1
4148 0493 2004 jra L1412
4149 0495 L7312:
4150 ; 1761 TIM2->CCER2 &= (u8)(~TIM2_CCER2_CC3P);
4152 0495 72135309 bres 21257,#1
4153 0499 L1412:
4154 ; 1764 TIM2->CCER2 |= TIM2_CCER2_CC3E;
4156 0499 72105309 bset 21257,#0
4157 ; 1765 }
4160 049d 5b03 addw sp,#3
4161 049f 81 ret
4174 xdef _TIM2_ClearITPendingBit
4175 xdef _TIM2_GetITStatus
4176 xdef _TIM2_ClearFlag
4177 xdef _TIM2_GetFlagStatus
4178 xdef _TIM2_GetPrescaler
4179 xdef _TIM2_GetCounter
4180 xdef _TIM2_GetCapture3
4181 xdef _TIM2_GetCapture2
4182 xdef _TIM2_GetCapture1
4183 xdef _TIM2_SetIC3Prescaler
4184 xdef _TIM2_SetIC2Prescaler
4185 xdef _TIM2_SetIC1Prescaler
4186 xdef _TIM2_SetCompare3
4187 xdef _TIM2_SetCompare2
4188 xdef _TIM2_SetCompare1
4189 xdef _TIM2_SetAutoreload
4190 xdef _TIM2_SetCounter
4191 xdef _TIM2_SelectOCxM
4192 xdef _TIM2_CCxCmd
4193 xdef _TIM2_OC3PolarityConfig
4194 xdef _TIM2_OC2PolarityConfig
4195 xdef _TIM2_OC1PolarityConfig
4196 xdef _TIM2_GenerateEvent
4197 xdef _TIM2_OC3PreloadConfig
4198 xdef _TIM2_OC2PreloadConfig
4199 xdef _TIM2_OC1PreloadConfig
4200 xdef _TIM2_ARRPreloadConfig
4201 xdef _TIM2_ForcedOC3Config
4202 xdef _TIM2_ForcedOC2Config
4203 xdef _TIM2_ForcedOC1Config
4204 xdef _TIM2_PrescalerConfig
4205 xdef _TIM2_SelectOnePulseMode
4206 xdef _TIM2_UpdateRequestConfig
4207 xdef _TIM2_UpdateDisableConfig
4208 xdef _TIM2_ITConfig
4209 xdef _TIM2_Cmd
4210 xdef _TIM2_PWMIConfig
4211 xdef _TIM2_ICInit
4212 xdef _TIM2_OC3Init
4213 xdef _TIM2_OC2Init
4214 xdef _TIM2_OC1Init
4215 xdef _TIM2_TimeBaseInit
4216 xdef _TIM2_DeInit
4235 end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -