📄 stm8s_tim3.ls
字号:
2153 0219 4d tnz a
2154 021a 2610 jrne L5111
2155 ; 861 if (NewState != DISABLE)
2157 021c 9f ld a,xl
2158 021d 4d tnz a
2159 021e 2706 jreq L7111
2160 ; 863 TIM3->CCER1 |= TIM3_CCER1_CC1E;
2162 0220 72105327 bset 21287,#0
2164 0224 2014 jra L3211
2165 0226 L7111:
2166 ; 867 TIM3->CCER1 &= (u8)(~TIM3_CCER1_CC1E);
2168 0226 72115327 bres 21287,#0
2169 022a 200e jra L3211
2170 022c L5111:
2171 ; 874 if (NewState != DISABLE)
2173 022c 0d02 tnz (OFST+2,sp)
2174 022e 2706 jreq L5211
2175 ; 876 TIM3->CCER1 |= TIM3_CCER1_CC2E;
2177 0230 72185327 bset 21287,#4
2179 0234 2004 jra L3211
2180 0236 L5211:
2181 ; 880 TIM3->CCER1 &= (u8)(~TIM3_CCER1_CC2E);
2183 0236 72195327 bres 21287,#4
2184 023a L3211:
2185 ; 884 }
2188 023a 85 popw x
2189 023b 81 ret
2234 ; 914 void TIM3_SelectOCxM(TIM3_Channel_TypeDef TIM3_Channel, TIM3_OCMode_TypeDef TIM3_OCMode)
2234 ; 915 {
2235 switch .text
2236 023c _TIM3_SelectOCxM:
2238 023c 89 pushw x
2239 00000000 OFST: set 0
2242 ; 917 assert_param(IS_TIM3_CHANNEL_OK(TIM3_Channel));
2244 ; 918 assert_param(IS_TIM3_OCM_OK(TIM3_OCMode));
2246 ; 920 if (TIM3_Channel == TIM3_CHANNEL_1)
2248 023d 9e ld a,xh
2249 023e 4d tnz a
2250 023f 2610 jrne L3511
2251 ; 923 TIM3->CCER1 &= (u8)(~TIM3_CCER1_CC1E);
2253 0241 72115327 bres 21287,#0
2254 ; 926 TIM3->CCMR1 = (u8)((TIM3->CCMR1 & (u8)(~TIM3_CCMR_OCM)) | (u8)TIM3_OCMode);
2256 0245 c65325 ld a,21285
2257 0248 a48f and a,#143
2258 024a 1a02 or a,(OFST+2,sp)
2259 024c c75325 ld 21285,a
2261 024f 200e jra L5511
2262 0251 L3511:
2263 ; 931 TIM3->CCER1 &= (u8)(~TIM3_CCER1_CC2E);
2265 0251 72195327 bres 21287,#4
2266 ; 934 TIM3->CCMR2 = (u8)((TIM3->CCMR2 & (u8)(~TIM3_CCMR_OCM)) | (u8)TIM3_OCMode);
2268 0255 c65326 ld a,21286
2269 0258 a48f and a,#143
2270 025a 1a02 or a,(OFST+2,sp)
2271 025c c75326 ld 21286,a
2272 025f L5511:
2273 ; 936 }
2276 025f 85 popw x
2277 0260 81 ret
2309 ; 954 void TIM3_SetCounter(u16 Counter)
2309 ; 955 {
2310 switch .text
2311 0261 _TIM3_SetCounter:
2315 ; 957 TIM3->CNTRH = (u8)(Counter >> 8);
2317 0261 9e ld a,xh
2318 0262 c75328 ld 21288,a
2319 ; 958 TIM3->CNTRL = (u8)(Counter);
2321 0265 9f ld a,xl
2322 0266 c75329 ld 21289,a
2323 ; 960 }
2326 0269 81 ret
2358 ; 978 void TIM3_SetAutoreload(u16 Autoreload)
2358 ; 979 {
2359 switch .text
2360 026a _TIM3_SetAutoreload:
2364 ; 981 TIM3->ARRH = (u8)(Autoreload >> 8);
2366 026a 9e ld a,xh
2367 026b c7532b ld 21291,a
2368 ; 982 TIM3->ARRL = (u8)(Autoreload);
2370 026e 9f ld a,xl
2371 026f c7532c ld 21292,a
2372 ; 983 }
2375 0272 81 ret
2407 ; 1001 void TIM3_SetCompare1(u16 Compare1)
2407 ; 1002 {
2408 switch .text
2409 0273 _TIM3_SetCompare1:
2413 ; 1004 TIM3->CCR1H = (u8)(Compare1 >> 8);
2415 0273 9e ld a,xh
2416 0274 c7532d ld 21293,a
2417 ; 1005 TIM3->CCR1L = (u8)(Compare1);
2419 0277 9f ld a,xl
2420 0278 c7532e ld 21294,a
2421 ; 1006 }
2424 027b 81 ret
2456 ; 1024 void TIM3_SetCompare2(u16 Compare2)
2456 ; 1025 {
2457 switch .text
2458 027c _TIM3_SetCompare2:
2462 ; 1027 TIM3->CCR2H = (u8)(Compare2 >> 8);
2464 027c 9e ld a,xh
2465 027d c7532f ld 21295,a
2466 ; 1028 TIM3->CCR2L = (u8)(Compare2);
2468 0280 9f ld a,xl
2469 0281 c75330 ld 21296,a
2470 ; 1029 }
2473 0284 81 ret
2509 ; 1051 void TIM3_SetIC1Prescaler(TIM3_ICPSC_TypeDef TIM3_IC1Prescaler)
2509 ; 1052 {
2510 switch .text
2511 0285 _TIM3_SetIC1Prescaler:
2513 0285 88 push a
2514 00000000 OFST: set 0
2517 ; 1054 assert_param(IS_TIM3_IC_PRESCALER_OK(TIM3_IC1Prescaler));
2519 ; 1057 TIM3->CCMR1 = (u8)((TIM3->CCMR1 & (u8)(~TIM3_CCMR_ICxPSC)) | (u8)TIM3_IC1Prescaler);
2521 0286 c65325 ld a,21285
2522 0289 a4f3 and a,#243
2523 028b 1a01 or a,(OFST+1,sp)
2524 028d c75325 ld 21285,a
2525 ; 1058 }
2528 0290 84 pop a
2529 0291 81 ret
2565 ; 1079 void TIM3_SetIC2Prescaler(TIM3_ICPSC_TypeDef TIM3_IC2Prescaler)
2565 ; 1080 {
2566 switch .text
2567 0292 _TIM3_SetIC2Prescaler:
2569 0292 88 push a
2570 00000000 OFST: set 0
2573 ; 1082 assert_param(IS_TIM3_IC_PRESCALER_OK(TIM3_IC2Prescaler));
2575 ; 1085 TIM3->CCMR2 = (u8)((TIM3->CCMR2 & (u8)(~TIM3_CCMR_ICxPSC)) | (u8)TIM3_IC2Prescaler);
2577 0293 c65326 ld a,21286
2578 0296 a4f3 and a,#243
2579 0298 1a01 or a,(OFST+1,sp)
2580 029a c75326 ld 21286,a
2581 ; 1086 }
2584 029d 84 pop a
2585 029e 81 ret
2631 ; 1103 u16 TIM3_GetCapture1(void)
2631 ; 1104 {
2632 switch .text
2633 029f _TIM3_GetCapture1:
2635 029f 5204 subw sp,#4
2636 00000004 OFST: set 4
2639 ; 1106 u16 tmpccr1 = 0;
2641 ; 1107 u8 tmpccr1l=0, tmpccr1h=0;
2645 ; 1109 tmpccr1h = TIM3->CCR1H;
2647 02a1 c6532d ld a,21293
2648 02a4 6b02 ld (OFST-2,sp),a
2649 ; 1110 tmpccr1l = TIM3->CCR1L;
2651 02a6 c6532e ld a,21294
2652 02a9 6b01 ld (OFST-3,sp),a
2653 ; 1112 tmpccr1 = (u16)(tmpccr1l);
2655 02ab 7b01 ld a,(OFST-3,sp)
2656 02ad 5f clrw x
2657 02ae 97 ld xl,a
2658 02af 1f03 ldw (OFST-1,sp),x
2659 ; 1113 tmpccr1 |= (u16)((u16)tmpccr1h << 8);
2661 02b1 7b02 ld a,(OFST-2,sp)
2662 02b3 5f clrw x
2663 02b4 97 ld xl,a
2664 02b5 4f clr a
2665 02b6 02 rlwa x,a
2666 02b7 01 rrwa x,a
2667 02b8 1a04 or a,(OFST+0,sp)
2668 02ba 01 rrwa x,a
2669 02bb 1a03 or a,(OFST-1,sp)
2670 02bd 01 rrwa x,a
2671 02be 1f03 ldw (OFST-1,sp),x
2672 ; 1115 return (u16)tmpccr1;
2674 02c0 1e03 ldw x,(OFST-1,sp)
2677 02c2 5b04 addw sp,#4
2678 02c4 81 ret
2724 ; 1134 u16 TIM3_GetCapture2(void)
2724 ; 1135 {
2725 switch .text
2726 02c5 _TIM3_GetCapture2:
2728 02c5 5204 subw sp,#4
2729 00000004 OFST: set 4
2732 ; 1137 u16 tmpccr2 = 0;
2734 ; 1138 u8 tmpccr2l=0, tmpccr2h=0;
2738 ; 1140 tmpccr2h = TIM3->CCR2H;
2740 02c7 c6532f ld a,21295
2741 02ca 6b02 ld (OFST-2,sp),a
2742 ; 1141 tmpccr2l = TIM3->CCR2L;
2744 02cc c65330 ld a,21296
2745 02cf 6b01 ld (OFST-3,sp),a
2746 ; 1143 tmpccr2 = (u16)(tmpccr2l);
2748 02d1 7b01 ld a,(OFST-3,sp)
2749 02d3 5f clrw x
2750 02d4 97 ld xl,a
2751 02d5 1f03 ldw (OFST-1,sp),x
2752 ; 1144 tmpccr2 |= (u16)((u16)tmpccr2h << 8);
2754 02d7 7b02 ld a,(OFST-2,sp)
2755 02d9 5f clrw x
2756 02da 97 ld xl,a
2757 02db 4f clr a
2758 02dc 02 rlwa x,a
2759 02dd 01 rrwa x,a
2760 02de 1a04 or a,(OFST+0,sp)
2761 02e0 01 rrwa x,a
2762 02e1 1a03 or a,(OFST-1,sp)
2763 02e3 01 rrwa x,a
2764 02e4 1f03 ldw (OFST-1,sp),x
2765 ; 1146 return (u16)tmpccr2;
2767 02e6 1e03 ldw x,(OFST-1,sp)
2770 02e8 5b04 addw sp,#4
2771 02ea 81 ret
2794 ; 1165 u16 TIM3_GetCounter(void)
2794 ; 1166 {
2795 switch .text
2796 02eb _TIM3_GetCounter:
2798 02eb 89 pushw x
2799 00000002 OFST: set 2
2802 ; 1168 return (u16)(((u16)TIM3->CNTRH << 8) | (u16)(TIM3->CNTRL));
2804 02ec c65329 ld a,21289
2805 02ef 5f clrw x
2806 02f0 97 ld xl,a
2807 02f1 1f01 ldw (OFST-1,sp),x
2808 02f3 c65328 ld a,21288
2809 02f6 5f clrw x
2810 02f7 97 ld xl,a
2811 02f8 4f clr a
2812 02f9 02 rlwa x,a
2813 02fa 01 rrwa x,a
2814 02fb 1a02 or a,(OFST+0,sp)
2815 02fd 01 rrwa x,a
2816 02fe 1a01 or a,(OFST-1,sp)
2817 0300 01 rrwa x,a
2820 0301 5b02 addw sp,#2
2821 0303 81 ret
2845 ; 1188 TIM3_Prescaler_TypeDef TIM3_GetPrescaler(void)
2845 ; 1189 {
2846 switch .text
2847 0304 _TIM3_GetPrescaler:
2851 ; 1191 return (TIM3_Prescaler_TypeDef)(TIM3->PSCR);
2853 0304 c6532a ld a,21290
2856 0307 81 ret
2977 ; 1216 FlagStatus TIM3_GetFlagStatus(TIM3_FLAG_TypeDef TIM3_FLAG)
2977 ; 1217 {
2978 switch .text
2979 0308 _TIM3_GetFlagStatus:
2981 0308 5203 subw sp,#3
2982 00000003 OFST: set 3
2985 ; 1218 FlagStatus bitstatus = RESET;
2987 ; 1222 assert_param(IS_TIM3_GET_FLAG_OK(TIM3_FLAG));
2989 ; 1224 tim3_flag_l = (u8)(TIM3_FLAG);
2991 030a 9f ld a,xl
2992 030b 6b02 ld (OFST-1,sp),a
2993 ; 1225 tim3_flag_h = (u8)(TIM3_FLAG >> 8);
2995 030d 9e ld a,xh
2996 030e 6b03 ld (OFST+0,sp),a
2997 ; 1227 if (((TIM3->SR1 & tim3_flag_l) | (TIM3->SR2 & tim3_flag_h)) != (u8)RESET )
2999 0310 c65323 ld a,21283
3000 0313 1403 and a,(OFST+0,sp)
3001 0315 6b01 ld (OFST-2,sp),a
3002 0317 c65322 ld a,21282
3003 031a 1402 and a,(OFST-1,sp)
3004 031c 1a01 or a,(OFST-2,sp)
3005 031e 2706 jreq L7241
3006 ; 1229 bitstatus = SET;
3008 0320 a601 ld a,#1
3009 0322 6b03 ld (OFST+0,sp),a
3011 0324 2002 jra L1341
3012 0326 L7241:
3013 ; 1233 bitstatus = RESET;
3015 0326 0f03 clr (OFST+0,sp)
3016 0328 L1341:
3017 ; 1235 return (FlagStatus)bitstatus;
3019 0328 7b03 ld a,(OFST+0,sp)
3022 032a 5b03 addw sp,#3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -