📄 stm8s_tim2.ls
字号:
2365 ; 951 if (TIM2_OCPolarity != TIM2_OCPOLARITY_HIGH)
2367 0281 4d tnz a
2368 0282 2706 jreq L3711
2369 ; 953 TIM2->CCER1 |= TIM2_CCER1_CC2P;
2371 0284 721a5308 bset 21256,#5
2373 0288 2004 jra L5711
2374 028a L3711:
2375 ; 957 TIM2->CCER1 &= (u8)(~TIM2_CCER1_CC2P);
2377 028a 721b5308 bres 21256,#5
2378 028e L5711:
2379 ; 959 }
2382 028e 81 ret
2418 ; 979 void TIM2_OC3PolarityConfig(TIM2_OCPolarity_TypeDef TIM2_OCPolarity)
2418 ; 980 {
2419 switch .text
2420 028f _TIM2_OC3PolarityConfig:
2424 ; 982 assert_param(IS_TIM2_OC_POLARITY_OK(TIM2_OCPolarity));
2426 ; 985 if (TIM2_OCPolarity != TIM2_OCPOLARITY_HIGH)
2428 028f 4d tnz a
2429 0290 2706 jreq L5121
2430 ; 987 TIM2->CCER2 |= TIM2_CCER2_CC3P;
2432 0292 72125309 bset 21257,#1
2434 0296 2004 jra L7121
2435 0298 L5121:
2436 ; 991 TIM2->CCER2 &= (u8)(~TIM2_CCER2_CC3P);
2438 0298 72135309 bres 21257,#1
2439 029c L7121:
2440 ; 993 }
2443 029c 81 ret
2488 ; 1016 void TIM2_CCxCmd(TIM2_Channel_TypeDef TIM2_Channel, FunctionalState NewState)
2488 ; 1017 {
2489 switch .text
2490 029d _TIM2_CCxCmd:
2492 029d 89 pushw x
2493 00000000 OFST: set 0
2496 ; 1019 assert_param(IS_TIM2_CHANNEL_OK(TIM2_Channel));
2498 ; 1020 assert_param(IS_FUNCTIONALSTATE_OK(NewState));
2500 ; 1022 if (TIM2_Channel == TIM2_CHANNEL_1)
2502 029e 9e ld a,xh
2503 029f 4d tnz a
2504 02a0 2610 jrne L3421
2505 ; 1025 if (NewState != DISABLE)
2507 02a2 9f ld a,xl
2508 02a3 4d tnz a
2509 02a4 2706 jreq L5421
2510 ; 1027 TIM2->CCER1 |= TIM2_CCER1_CC1E;
2512 02a6 72105308 bset 21256,#0
2514 02aa 202a jra L1521
2515 02ac L5421:
2516 ; 1031 TIM2->CCER1 &= (u8)(~TIM2_CCER1_CC1E);
2518 02ac 72115308 bres 21256,#0
2519 02b0 2024 jra L1521
2520 02b2 L3421:
2521 ; 1035 else if (TIM2_Channel == TIM2_CHANNEL_2)
2523 02b2 7b01 ld a,(OFST+1,sp)
2524 02b4 a101 cp a,#1
2525 02b6 2610 jrne L3521
2526 ; 1038 if (NewState != DISABLE)
2528 02b8 0d02 tnz (OFST+2,sp)
2529 02ba 2706 jreq L5521
2530 ; 1040 TIM2->CCER1 |= TIM2_CCER1_CC2E;
2532 02bc 72185308 bset 21256,#4
2534 02c0 2014 jra L1521
2535 02c2 L5521:
2536 ; 1044 TIM2->CCER1 &= (u8)(~TIM2_CCER1_CC2E);
2538 02c2 72195308 bres 21256,#4
2539 02c6 200e jra L1521
2540 02c8 L3521:
2541 ; 1050 if (NewState != DISABLE)
2543 02c8 0d02 tnz (OFST+2,sp)
2544 02ca 2706 jreq L3621
2545 ; 1052 TIM2->CCER2 |= TIM2_CCER2_CC3E;
2547 02cc 72105309 bset 21257,#0
2549 02d0 2004 jra L1521
2550 02d2 L3621:
2551 ; 1056 TIM2->CCER2 &= (u8)(~TIM2_CCER2_CC3E);
2553 02d2 72115309 bres 21257,#0
2554 02d6 L1521:
2555 ; 1059 }
2558 02d6 85 popw x
2559 02d7 81 ret
2604 ; 1090 void TIM2_SelectOCxM(TIM2_Channel_TypeDef TIM2_Channel, TIM2_OCMode_TypeDef TIM2_OCMode)
2604 ; 1091 {
2605 switch .text
2606 02d8 _TIM2_SelectOCxM:
2608 02d8 89 pushw x
2609 00000000 OFST: set 0
2612 ; 1093 assert_param(IS_TIM2_CHANNEL_OK(TIM2_Channel));
2614 ; 1094 assert_param(IS_TIM2_OCM_OK(TIM2_OCMode));
2616 ; 1096 if (TIM2_Channel == TIM2_CHANNEL_1)
2618 02d9 9e ld a,xh
2619 02da 4d tnz a
2620 02db 2610 jrne L1131
2621 ; 1099 TIM2->CCER1 &= (u8)(~TIM2_CCER1_CC1E);
2623 02dd 72115308 bres 21256,#0
2624 ; 1102 TIM2->CCMR1 = (u8)((TIM2->CCMR1 & (u8)(~TIM2_CCMR_OCM)) | (u8)TIM2_OCMode);
2626 02e1 c65305 ld a,21253
2627 02e4 a48f and a,#143
2628 02e6 1a02 or a,(OFST+2,sp)
2629 02e8 c75305 ld 21253,a
2631 02eb 2024 jra L3131
2632 02ed L1131:
2633 ; 1104 else if (TIM2_Channel == TIM2_CHANNEL_2)
2635 02ed 7b01 ld a,(OFST+1,sp)
2636 02ef a101 cp a,#1
2637 02f1 2610 jrne L5131
2638 ; 1107 TIM2->CCER1 &= (u8)(~TIM2_CCER1_CC2E);
2640 02f3 72195308 bres 21256,#4
2641 ; 1110 TIM2->CCMR2 = (u8)((TIM2->CCMR2 & (u8)(~TIM2_CCMR_OCM)) | (u8)TIM2_OCMode);
2643 02f7 c65306 ld a,21254
2644 02fa a48f and a,#143
2645 02fc 1a02 or a,(OFST+2,sp)
2646 02fe c75306 ld 21254,a
2648 0301 200e jra L3131
2649 0303 L5131:
2650 ; 1115 TIM2->CCER2 &= (u8)(~TIM2_CCER2_CC3E);
2652 0303 72115309 bres 21257,#0
2653 ; 1118 TIM2->CCMR3 = (u8)((TIM2->CCMR3 & (u8)(~TIM2_CCMR_OCM)) | (u8)TIM2_OCMode);
2655 0307 c65307 ld a,21255
2656 030a a48f and a,#143
2657 030c 1a02 or a,(OFST+2,sp)
2658 030e c75307 ld 21255,a
2659 0311 L3131:
2660 ; 1120 }
2663 0311 85 popw x
2664 0312 81 ret
2696 ; 1138 void TIM2_SetCounter(u16 Counter)
2696 ; 1139 {
2697 switch .text
2698 0313 _TIM2_SetCounter:
2702 ; 1141 TIM2->CNTRH = (u8)(Counter >> 8);
2704 0313 9e ld a,xh
2705 0314 c7530a ld 21258,a
2706 ; 1142 TIM2->CNTRL = (u8)(Counter);
2708 0317 9f ld a,xl
2709 0318 c7530b ld 21259,a
2710 ; 1144 }
2713 031b 81 ret
2745 ; 1162 void TIM2_SetAutoreload(u16 Autoreload)
2745 ; 1163 {
2746 switch .text
2747 031c _TIM2_SetAutoreload:
2751 ; 1166 TIM2->ARRH = (u8)(Autoreload >> 8);
2753 031c 9e ld a,xh
2754 031d c7530d ld 21261,a
2755 ; 1167 TIM2->ARRL = (u8)(Autoreload);
2757 0320 9f ld a,xl
2758 0321 c7530e ld 21262,a
2759 ; 1169 }
2762 0324 81 ret
2794 ; 1187 void TIM2_SetCompare1(u16 Compare1)
2794 ; 1188 {
2795 switch .text
2796 0325 _TIM2_SetCompare1:
2800 ; 1190 TIM2->CCR1H = (u8)(Compare1 >> 8);
2802 0325 9e ld a,xh
2803 0326 c7530f ld 21263,a
2804 ; 1191 TIM2->CCR1L = (u8)(Compare1);
2806 0329 9f ld a,xl
2807 032a c75310 ld 21264,a
2808 ; 1193 }
2811 032d 81 ret
2843 ; 1211 void TIM2_SetCompare2(u16 Compare2)
2843 ; 1212 {
2844 switch .text
2845 032e _TIM2_SetCompare2:
2849 ; 1214 TIM2->CCR2H = (u8)(Compare2 >> 8);
2851 032e 9e ld a,xh
2852 032f c75311 ld 21265,a
2853 ; 1215 TIM2->CCR2L = (u8)(Compare2);
2855 0332 9f ld a,xl
2856 0333 c75312 ld 21266,a
2857 ; 1217 }
2860 0336 81 ret
2892 ; 1235 void TIM2_SetCompare3(u16 Compare3)
2892 ; 1236 {
2893 switch .text
2894 0337 _TIM2_SetCompare3:
2898 ; 1238 TIM2->CCR3H = (u8)(Compare3 >> 8);
2900 0337 9e ld a,xh
2901 0338 c75313 ld 21267,a
2902 ; 1239 TIM2->CCR3L = (u8)(Compare3);
2904 033b 9f ld a,xl
2905 033c c75314 ld 21268,a
2906 ; 1241 }
2909 033f 81 ret
2945 ; 1263 void TIM2_SetIC1Prescaler(TIM2_ICPSC_TypeDef TIM2_IC1Prescaler)
2945 ; 1264 {
2946 switch .text
2947 0340 _TIM2_SetIC1Prescaler:
2949 0340 88 push a
2950 00000000 OFST: set 0
2953 ; 1266 assert_param(IS_TIM2_IC_PRESCALER_OK(TIM2_IC1Prescaler));
2955 ; 1269 TIM2->CCMR1 = (u8)((TIM2->CCMR1 & (u8)(~TIM2_CCMR_ICxPSC)) | (u8)TIM2_IC1Prescaler);
2957 0341 c65305 ld a,21253
2958 0344 a4f3 and a,#243
2959 0346 1a01 or a,(OFST+1,sp)
2960 0348 c75305 ld 21253,a
2961 ; 1270 }
2964 034b 84 pop a
2965 034c 81 ret
3001 ; 1291 void TIM2_SetIC2Prescaler(TIM2_ICPSC_TypeDef TIM2_IC2Prescaler)
3001 ; 1292 {
3002 switch .text
3003 034d _TIM2_SetIC2Prescaler:
3005 034d 88 push a
3006 00000000 OFST: set 0
3009 ; 1294 assert_param(IS_TIM2_IC_PRESCALER_OK(TIM2_IC2Prescaler));
3011 ; 1297 TIM2->CCMR2 = (u8)((TIM2->CCMR2 & (u8)(~TIM2_CCMR_ICxPSC)) | (u8)TIM2_IC2Prescaler);
3013 034e c65306 ld a,21254
3014 0351 a4f3 and a,#243
3015 0353 1a01 or a,(OFST+1,sp)
3016 0355 c75306 ld 21254,a
3017 ; 1298 }
3020 0358 84 pop a
3021 0359 81 ret
3057 ; 1319 void TIM2_SetIC3Prescaler(TIM2_ICPSC_TypeDef TIM2_IC3Prescaler)
3057 ; 1320 {
3058 switch .text
3059 035a _TIM2_SetIC3Prescaler:
3061 035a 88 push a
3062 00000000 OFST: set 0
3065 ; 1323 assert_param(IS_TIM2_IC_PRESCALER_OK(TIM2_IC3Prescaler));
3067 ; 1325 TIM2->CCMR3 = (u8)((TIM2->CCMR3 & (u8)(~TIM2_CCMR_ICxPSC)) | (u8)TIM2_IC3Prescaler);
3069 035b c65307 ld a,21255
3070 035e a4f3 and a,#243
3071 0360 1a01 or a,(OFST+1,sp)
3072 0362 c75307 ld 21255,a
3073 ; 1326 }
3076 0365 84 pop a
3077 0366 81 ret
3123 ; 1344 u16 TIM2_GetCapture1(void)
3123 ; 1345 {
3124 switch .text
3125 0367 _TIM2_GetCapture1:
3127 0367 5204 subw sp,#4
3128 00000004 OFST: set 4
3131 ; 1347 u16 tmpccr1 = 0;
3133 ; 1348 u8 tmpccr1l=0, tmpccr1h=0;
3137 ; 1350 tmpccr1h = TIM2->CCR1H;
3139 0369 c6530f ld a,21263
3140 036c 6b02 ld (OFST-2,sp),a
3141 ; 1351 tmpccr1l = TIM2->CCR1L;
3143 036e c65310 ld a,21264
3144 0371 6b01 ld (OFST-3,sp),a
3145 ; 1353 tmpccr1 = (u16)(tmpccr1l);
3147 0373 7b01 ld a,(OFST-3,sp)
3148 0375 5f clrw x
3149 0376 97 ld xl,a
3150 0377 1f03 ldw (OFST-1,sp),x
3151 ; 1354 tmpccr1 |= (u16)((u16)tmpccr1h << 8);
3153 0379 7b02 ld a,(OFST-2,sp)
3154 037b 5f clrw x
3155 037c 97 ld xl,a
3156 037d 4f clr a
3157 037e 02 rlwa x,a
3158 037f 01 rrwa x,a
3159 0380 1a04 or a,(OFST+0,sp)
3160 0382 01 rrwa x,a
3161 0383 1a03 or a,(OFST-1,sp)
3162 0385 01 rrwa x,a
3163 0386 1f03 ldw (OFST-1,sp),x
3164 ; 1356 return (u16)tmpccr1;
3166 0388 1e03 ldw x,(OFST-1,sp)
3169 038a 5b04 addw sp,#4
3170 038c 81 ret
3216 ; 1375 u16 TIM2_GetCapture2(void)
3216 ; 1376 {
3217 switch .text
3218 038d _TIM2_GetCapture2:
3220 038d 5204 subw sp,#4
3221 00000004 OFST: set 4
3224 ; 1378 u16 tmpccr2 = 0;
3226 ; 1379 u8 tmpccr2l=0, tmpccr2h=0;
3230 ; 1381 tmpccr2h = TIM2->CCR2H;
3232 038f c65311 ld a,21265
3233 0392 6b02 ld (OFST-2,sp),a
3234 ; 1382 tmpccr2l = TIM2->CCR2L;
3236 0394 c65312 ld a,21266
3237 0397 6b01 ld (OFST-3,sp),a
3238 ; 1384 tmpccr2 = (u16)(tmpccr2l);
3240 0399 7b01 ld a,(OFST-3,sp)
3241 039b 5f clrw x
3242 039c 97 ld xl,a
3243 039d 1f03 ldw (OFST-1,sp),x
3244 ; 1385 tmpccr2 |= (u16)((u16)tmpccr2h << 8);
3246 039f 7b02 ld a,(OFST-2,sp)
3247 03a1 5f clrw x
3248 03a2 97 ld xl,a
3249 03a3 4f clr a
3250 03a4 02 rlwa x,a
3251 03a5 01 rrwa x,a
3252 03a6 1a04 or a,(OFST+0,sp)
3253 03a8 01 rrwa x,a
3254 03a9 1a03 or a,(OFST-1,sp)
3255 03ab 01 rrwa x,a
3256 03ac 1f03 ldw (OFST-1,sp),x
3257 ; 1387 return (u16)tmpccr2;
3259 03ae 1e03 ldw x,(OFST-1,sp)
3262 03b0 5b04 addw sp,#4
3263 03b2 81 ret
3309 ; 1406 u16 TIM2_GetCapture3(void)
3309 ; 1407 {
3310 switch .text
3311 03b3 _TIM2_GetCapture3:
3313 03b3 5204 subw sp,#4
3314 00000004 OFST: set 4
3317 ; 1409 u16 tmpccr3 = 0;
3319 ; 1410 u8 tmpccr3l=0, tmpccr3h=0;
3323 ; 1412 tmpccr3h = TIM2->CCR3H;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -