📄 stm8s_tim3.ls
字号:
2142 0207 _TIM3_CCxCmd:
2144 0207 89 pushw x
2145 00000000 OFST: set 0
2148 ; 855 assert_param(IS_TIM3_CHANNEL_OK(TIM3_Channel));
2150 ; 856 assert_param(IS_FUNCTIONALSTATE_OK(NewState));
2152 ; 858 if (TIM3_Channel == TIM3_CHANNEL_1)
2154 0208 9e ld a,xh
2155 0209 4d tnz a
2156 020a 2610 jrne L3311
2157 ; 861 if (NewState != DISABLE)
2159 020c 9f ld a,xl
2160 020d 4d tnz a
2161 020e 2706 jreq L5311
2162 ; 863 TIM3->CCER1 |= TIM3_CCER1_CC1E;
2164 0210 72105327 bset 21287,#0
2166 0214 2014 jra L1411
2167 0216 L5311:
2168 ; 867 TIM3->CCER1 &= (u8)(~TIM3_CCER1_CC1E);
2170 0216 72115327 bres 21287,#0
2171 021a 200e jra L1411
2172 021c L3311:
2173 ; 874 if (NewState != DISABLE)
2175 021c 7b02 ld a,(OFST+2,sp)
2176 021e 2706 jreq L3411
2177 ; 876 TIM3->CCER1 |= TIM3_CCER1_CC2E;
2179 0220 72185327 bset 21287,#4
2181 0224 2004 jra L1411
2182 0226 L3411:
2183 ; 880 TIM3->CCER1 &= (u8)(~TIM3_CCER1_CC2E);
2185 0226 72195327 bres 21287,#4
2186 022a L1411:
2187 ; 884 }
2190 022a 85 popw x
2191 022b 81 ret
2236 ; 914 void TIM3_SelectOCxM(TIM3_Channel_TypeDef TIM3_Channel, TIM3_OCMode_TypeDef TIM3_OCMode)
2236 ; 915 {
2237 switch .text
2238 022c _TIM3_SelectOCxM:
2240 022c 89 pushw x
2241 00000000 OFST: set 0
2244 ; 917 assert_param(IS_TIM3_CHANNEL_OK(TIM3_Channel));
2246 ; 918 assert_param(IS_TIM3_OCM_OK(TIM3_OCMode));
2248 ; 920 if (TIM3_Channel == TIM3_CHANNEL_1)
2250 022d 9e ld a,xh
2251 022e 4d tnz a
2252 022f 2610 jrne L1711
2253 ; 923 TIM3->CCER1 &= (u8)(~TIM3_CCER1_CC1E);
2255 0231 72115327 bres 21287,#0
2256 ; 926 TIM3->CCMR1 = (u8)((TIM3->CCMR1 & (u8)(~TIM3_CCMR_OCM)) | (u8)TIM3_OCMode);
2258 0235 c65325 ld a,21285
2259 0238 a48f and a,#143
2260 023a 1a02 or a,(OFST+2,sp)
2261 023c c75325 ld 21285,a
2263 023f 200e jra L3711
2264 0241 L1711:
2265 ; 931 TIM3->CCER1 &= (u8)(~TIM3_CCER1_CC2E);
2267 0241 72195327 bres 21287,#4
2268 ; 934 TIM3->CCMR2 = (u8)((TIM3->CCMR2 & (u8)(~TIM3_CCMR_OCM)) | (u8)TIM3_OCMode);
2270 0245 c65326 ld a,21286
2271 0248 a48f and a,#143
2272 024a 1a02 or a,(OFST+2,sp)
2273 024c c75326 ld 21286,a
2274 024f L3711:
2275 ; 936 }
2278 024f 85 popw x
2279 0250 81 ret
2313 ; 954 void TIM3_SetCounter(u16 Counter)
2313 ; 955 {
2314 switch .text
2315 0251 _TIM3_SetCounter:
2319 ; 957 TIM3->CNTRH = (u8)(Counter >> 8);
2321 0251 9e ld a,xh
2322 0252 c75328 ld 21288,a
2323 ; 958 TIM3->CNTRL = (u8)(Counter);
2325 0255 9f ld a,xl
2326 0256 c75329 ld 21289,a
2327 ; 960 }
2330 0259 81 ret
2364 ; 978 void TIM3_SetAutoreload(u16 Autoreload)
2364 ; 979 {
2365 switch .text
2366 025a _TIM3_SetAutoreload:
2370 ; 981 TIM3->ARRH = (u8)(Autoreload >> 8);
2372 025a 9e ld a,xh
2373 025b c7532b ld 21291,a
2374 ; 982 TIM3->ARRL = (u8)(Autoreload);
2376 025e 9f ld a,xl
2377 025f c7532c ld 21292,a
2378 ; 983 }
2381 0262 81 ret
2415 ; 1001 void TIM3_SetCompare1(u16 Compare1)
2415 ; 1002 {
2416 switch .text
2417 0263 _TIM3_SetCompare1:
2421 ; 1004 TIM3->CCR1H = (u8)(Compare1 >> 8);
2423 0263 9e ld a,xh
2424 0264 c7532d ld 21293,a
2425 ; 1005 TIM3->CCR1L = (u8)(Compare1);
2427 0267 9f ld a,xl
2428 0268 c7532e ld 21294,a
2429 ; 1006 }
2432 026b 81 ret
2466 ; 1024 void TIM3_SetCompare2(u16 Compare2)
2466 ; 1025 {
2467 switch .text
2468 026c _TIM3_SetCompare2:
2472 ; 1027 TIM3->CCR2H = (u8)(Compare2 >> 8);
2474 026c 9e ld a,xh
2475 026d c7532f ld 21295,a
2476 ; 1028 TIM3->CCR2L = (u8)(Compare2);
2478 0270 9f ld a,xl
2479 0271 c75330 ld 21296,a
2480 ; 1029 }
2483 0274 81 ret
2519 ; 1051 void TIM3_SetIC1Prescaler(TIM3_ICPSC_TypeDef TIM3_IC1Prescaler)
2519 ; 1052 {
2520 switch .text
2521 0275 _TIM3_SetIC1Prescaler:
2523 0275 88 push a
2524 00000000 OFST: set 0
2527 ; 1054 assert_param(IS_TIM3_IC_PRESCALER_OK(TIM3_IC1Prescaler));
2529 ; 1057 TIM3->CCMR1 = (u8)((TIM3->CCMR1 & (u8)(~TIM3_CCMR_ICxPSC)) | (u8)TIM3_IC1Prescaler);
2531 0276 c65325 ld a,21285
2532 0279 a4f3 and a,#243
2533 027b 1a01 or a,(OFST+1,sp)
2534 027d c75325 ld 21285,a
2535 ; 1058 }
2538 0280 84 pop a
2539 0281 81 ret
2575 ; 1079 void TIM3_SetIC2Prescaler(TIM3_ICPSC_TypeDef TIM3_IC2Prescaler)
2575 ; 1080 {
2576 switch .text
2577 0282 _TIM3_SetIC2Prescaler:
2579 0282 88 push a
2580 00000000 OFST: set 0
2583 ; 1082 assert_param(IS_TIM3_IC_PRESCALER_OK(TIM3_IC2Prescaler));
2585 ; 1085 TIM3->CCMR2 = (u8)((TIM3->CCMR2 & (u8)(~TIM3_CCMR_ICxPSC)) | (u8)TIM3_IC2Prescaler);
2587 0283 c65326 ld a,21286
2588 0286 a4f3 and a,#243
2589 0288 1a01 or a,(OFST+1,sp)
2590 028a c75326 ld 21286,a
2591 ; 1086 }
2594 028d 84 pop a
2595 028e 81 ret
2647 ; 1103 u16 TIM3_GetCapture1(void)
2647 ; 1104 {
2648 switch .text
2649 028f _TIM3_GetCapture1:
2651 028f 5204 subw sp,#4
2652 00000004 OFST: set 4
2655 ; 1106 u16 tmpccr1 = 0;
2657 ; 1107 u8 tmpccr1l=0, tmpccr1h=0;
2661 ; 1109 tmpccr1h = TIM3->CCR1H;
2663 0291 c6532d ld a,21293
2664 0294 6b02 ld (OFST-2,sp),a
2665 ; 1110 tmpccr1l = TIM3->CCR1L;
2667 0296 c6532e ld a,21294
2668 0299 6b01 ld (OFST-3,sp),a
2669 ; 1112 tmpccr1 = (u16)(tmpccr1l);
2671 029b 5f clrw x
2672 029c 97 ld xl,a
2673 029d 1f03 ldw (OFST-1,sp),x
2674 ; 1113 tmpccr1 |= (u16)((u16)tmpccr1h << 8);
2676 029f 7b02 ld a,(OFST-2,sp)
2677 02a1 97 ld xl,a
2678 02a2 7b04 ld a,(OFST+0,sp)
2679 02a4 01 rrwa x,a
2680 02a5 1a03 or a,(OFST-1,sp)
2681 02a7 01 rrwa x,a
2682 ; 1115 return (u16)tmpccr1;
2686 02a8 5b04 addw sp,#4
2687 02aa 81 ret
2739 ; 1134 u16 TIM3_GetCapture2(void)
2739 ; 1135 {
2740 switch .text
2741 02ab _TIM3_GetCapture2:
2743 02ab 5204 subw sp,#4
2744 00000004 OFST: set 4
2747 ; 1137 u16 tmpccr2 = 0;
2749 ; 1138 u8 tmpccr2l=0, tmpccr2h=0;
2753 ; 1140 tmpccr2h = TIM3->CCR2H;
2755 02ad c6532f ld a,21295
2756 02b0 6b02 ld (OFST-2,sp),a
2757 ; 1141 tmpccr2l = TIM3->CCR2L;
2759 02b2 c65330 ld a,21296
2760 02b5 6b01 ld (OFST-3,sp),a
2761 ; 1143 tmpccr2 = (u16)(tmpccr2l);
2763 02b7 5f clrw x
2764 02b8 97 ld xl,a
2765 02b9 1f03 ldw (OFST-1,sp),x
2766 ; 1144 tmpccr2 |= (u16)((u16)tmpccr2h << 8);
2768 02bb 7b02 ld a,(OFST-2,sp)
2769 02bd 97 ld xl,a
2770 02be 7b04 ld a,(OFST+0,sp)
2771 02c0 01 rrwa x,a
2772 02c1 1a03 or a,(OFST-1,sp)
2773 02c3 01 rrwa x,a
2774 ; 1146 return (u16)tmpccr2;
2778 02c4 5b04 addw sp,#4
2779 02c6 81 ret
2802 ; 1165 u16 TIM3_GetCounter(void)
2802 ; 1166 {
2803 switch .text
2804 02c7 _TIM3_GetCounter:
2806 02c7 89 pushw x
2807 00000002 OFST: set 2
2810 ; 1168 return (u16)(((u16)TIM3->CNTRH << 8) | (u16)(TIM3->CNTRL));
2812 02c8 c65329 ld a,21289
2813 02cb 5f clrw x
2814 02cc 97 ld xl,a
2815 02cd 1f01 ldw (OFST-1,sp),x
2816 02cf c65328 ld a,21288
2817 02d2 97 ld xl,a
2818 02d3 7b02 ld a,(OFST+0,sp)
2819 02d5 01 rrwa x,a
2820 02d6 1a01 or a,(OFST-1,sp)
2821 02d8 01 rrwa x,a
2824 02d9 5b02 addw sp,#2
2825 02db 81 ret
2849 ; 1188 TIM3_Prescaler_TypeDef TIM3_GetPrescaler(void)
2849 ; 1189 {
2850 switch .text
2851 02dc _TIM3_GetPrescaler:
2855 ; 1191 return (TIM3_Prescaler_TypeDef)(TIM3->PSCR);
2857 02dc c6532a ld a,21290
2860 02df 81 ret
2985 ; 1216 FlagStatus TIM3_GetFlagStatus(TIM3_FLAG_TypeDef TIM3_FLAG)
2985 ; 1217 {
2986 switch .text
2987 02e0 _TIM3_GetFlagStatus:
2989 02e0 89 pushw x
2990 02e1 5203 subw sp,#3
2991 00000003 OFST: set 3
2994 ; 1218 FlagStatus bitstatus = RESET;
2996 02e3 7b03 ld a,(OFST+0,sp)
2997 02e5 97 ld xl,a
2998 ; 1222 assert_param(IS_TIM3_GET_FLAG_OK(TIM3_FLAG));
3000 ; 1224 tim3_flag_l = (u8)(TIM3_FLAG);
3002 02e6 7b05 ld a,(OFST+2,sp)
3003 02e8 6b02 ld (OFST-1,sp),a
3004 ; 1225 tim3_flag_h = (u8)(TIM3_FLAG >> 8);
3006 02ea 7b04 ld a,(OFST+1,sp)
3007 02ec 6b03 ld (OFST+0,sp),a
3008 ; 1227 if (((TIM3->SR1 & tim3_flag_l) | (TIM3->SR2 & tim3_flag_h)) != (u8)RESET )
3010 02ee c45323 and a,21283
3011 02f1 6b01 ld (OFST-2,sp),a
3012 02f3 c65322 ld a,21282
3013 02f6 1402 and a,(OFST-1,sp)
3014 02f8 1a01 or a,(OFST-2,sp)
3015 02fa 2702 jreq L5741
3016 ; 1229 bitstatus = SET;
3018 02fc a601 ld a,#1
3020 02fe L5741:
3021 ; 1233 bitstatus = RESET;
3023 ; 1235 return (FlagStatus)bitstatus;
3027 02fe 5b05 addw sp,#5
3028 0300 81 ret
3063 ; 1259 void TIM3_ClearFlag(TIM3_FLAG_TypeDef TIM3_FLAG)
3063 ; 1260 {
3064 switch .text
3065 0301 _TIM3_ClearFlag:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -