📄 stm8s_tim2.ls
字号:
1 ; C Compiler for STM8 (COSMIC Software)
2 ; Parser V4.9.10 - 10 Feb 2011
3 ; Generator (Limited) V4.3.6 - 15 Feb 2011
4 ; Optimizer V4.3.5 - 15 Feb 2011
47 ; 63 void TIM2_DeInit(void)
47 ; 64 {
49 switch .text
50 0000 _TIM2_DeInit:
54 ; 66 TIM2->CR1 = (u8)TIM2_CR1_RESET_VALUE;
56 0000 725f5300 clr 21248
57 ; 67 TIM2->IER = (u8)TIM2_IER_RESET_VALUE;
59 0004 725f5301 clr 21249
60 ; 68 TIM2->SR2 = (u8)TIM2_SR2_RESET_VALUE;
62 0008 725f5303 clr 21251
63 ; 71 TIM2->CCER1 = (u8)TIM2_CCER1_RESET_VALUE;
65 000c 725f5308 clr 21256
66 ; 72 TIM2->CCER2 = (u8)TIM2_CCER2_RESET_VALUE;
68 0010 725f5309 clr 21257
69 ; 76 TIM2->CCER1 = (u8)TIM2_CCER1_RESET_VALUE;
71 0014 725f5308 clr 21256
72 ; 77 TIM2->CCER2 = (u8)TIM2_CCER2_RESET_VALUE;
74 0018 725f5309 clr 21257
75 ; 78 TIM2->CCMR1 = (u8)TIM2_CCMR1_RESET_VALUE;
77 001c 725f5305 clr 21253
78 ; 79 TIM2->CCMR2 = (u8)TIM2_CCMR2_RESET_VALUE;
80 0020 725f5306 clr 21254
81 ; 80 TIM2->CCMR3 = (u8)TIM2_CCMR3_RESET_VALUE;
83 0024 725f5307 clr 21255
84 ; 81 TIM2->CNTRH = (u8)TIM2_CNTRH_RESET_VALUE;
86 0028 725f530a clr 21258
87 ; 82 TIM2->CNTRL = (u8)TIM2_CNTRL_RESET_VALUE;
89 002c 725f530b clr 21259
90 ; 83 TIM2->PSCR = (u8)TIM2_PSCR_RESET_VALUE;
92 0030 725f530c clr 21260
93 ; 84 TIM2->ARRH = (u8)TIM2_ARRH_RESET_VALUE;
95 0034 35ff530d mov 21261,#255
96 ; 85 TIM2->ARRL = (u8)TIM2_ARRL_RESET_VALUE;
98 0038 35ff530e mov 21262,#255
99 ; 86 TIM2->CCR1H = (u8)TIM2_CCR1H_RESET_VALUE;
101 003c 725f530f clr 21263
102 ; 87 TIM2->CCR1L = (u8)TIM2_CCR1L_RESET_VALUE;
104 0040 725f5310 clr 21264
105 ; 88 TIM2->CCR2H = (u8)TIM2_CCR2H_RESET_VALUE;
107 0044 725f5311 clr 21265
108 ; 89 TIM2->CCR2L = (u8)TIM2_CCR2L_RESET_VALUE;
110 0048 725f5312 clr 21266
111 ; 90 TIM2->CCR3H = (u8)TIM2_CCR3H_RESET_VALUE;
113 004c 725f5313 clr 21267
114 ; 91 TIM2->CCR3L = (u8)TIM2_CCR3L_RESET_VALUE;
116 0050 725f5314 clr 21268
117 ; 92 TIM2->SR1 = (u8)TIM2_SR1_RESET_VALUE;
119 0054 725f5302 clr 21250
120 ; 93 }
123 0058 81 ret
291 ; 113 void TIM2_TimeBaseInit( TIM2_Prescaler_TypeDef TIM2_Prescaler,
291 ; 114 u16 TIM2_Period)
291 ; 115 {
292 switch .text
293 0059 _TIM2_TimeBaseInit:
295 00000000 OFST: set 0
298 ; 117 TIM2->PSCR = (u8)(TIM2_Prescaler);
300 0059 c7530c ld 21260,a
301 005c 88 push a
302 ; 119 TIM2->ARRH = (u8)(TIM2_Period >> 8);
304 005d 7b04 ld a,(OFST+4,sp)
305 005f c7530d ld 21261,a
306 ; 120 TIM2->ARRL = (u8)(TIM2_Period);
308 0062 7b05 ld a,(OFST+5,sp)
309 0064 c7530e ld 21262,a
310 ; 121 }
313 0067 84 pop a
314 0068 81 ret
471 ; 145 void TIM2_OC1Init(TIM2_OCMode_TypeDef TIM2_OCMode,
471 ; 146 TIM2_OutputState_TypeDef TIM2_OutputState,
471 ; 147 u16 TIM2_Pulse,
471 ; 148 TIM2_OCPolarity_TypeDef TIM2_OCPolarity)
471 ; 149 {
472 switch .text
473 0069 _TIM2_OC1Init:
475 0069 89 pushw x
476 006a 88 push a
477 00000001 OFST: set 1
480 ; 151 assert_param(IS_TIM2_OC_MODE_OK(TIM2_OCMode));
482 ; 152 assert_param(IS_TIM2_OUTPUT_STATE_OK(TIM2_OutputState));
484 ; 153 assert_param(IS_TIM2_OC_POLARITY_OK(TIM2_OCPolarity));
486 ; 156 TIM2->CCER1 &= (u8)(~( TIM2_CCER1_CC1E | TIM2_CCER1_CC1P));
488 006b c65308 ld a,21256
489 006e a4fc and a,#252
490 0070 c75308 ld 21256,a
491 ; 158 TIM2->CCER1 |= (u8)((TIM2_OutputState & TIM2_CCER1_CC1E ) | (TIM2_OCPolarity & TIM2_CCER1_CC1P ));
493 0073 7b08 ld a,(OFST+7,sp)
494 0075 a402 and a,#2
495 0077 6b01 ld (OFST+0,sp),a
496 0079 9f ld a,xl
497 007a a401 and a,#1
498 007c 1a01 or a,(OFST+0,sp)
499 007e ca5308 or a,21256
500 0081 c75308 ld 21256,a
501 ; 161 TIM2->CCMR1 = (u8)((TIM2->CCMR1 & (u8)(~TIM2_CCMR_OCM)) | (u8)TIM2_OCMode);
503 0084 c65305 ld a,21253
504 0087 a48f and a,#143
505 0089 1a02 or a,(OFST+1,sp)
506 008b c75305 ld 21253,a
507 ; 164 TIM2->CCR1H = (u8)(TIM2_Pulse >> 8);
509 008e 7b06 ld a,(OFST+5,sp)
510 0090 c7530f ld 21263,a
511 ; 165 TIM2->CCR1L = (u8)(TIM2_Pulse);
513 0093 7b07 ld a,(OFST+6,sp)
514 0095 c75310 ld 21264,a
515 ; 166 }
518 0098 5b03 addw sp,#3
519 009a 81 ret
583 ; 190 void TIM2_OC2Init(TIM2_OCMode_TypeDef TIM2_OCMode,
583 ; 191 TIM2_OutputState_TypeDef TIM2_OutputState,
583 ; 192 u16 TIM2_Pulse,
583 ; 193 TIM2_OCPolarity_TypeDef TIM2_OCPolarity)
583 ; 194 {
584 switch .text
585 009b _TIM2_OC2Init:
587 009b 89 pushw x
588 009c 88 push a
589 00000001 OFST: set 1
592 ; 196 assert_param(IS_TIM2_OC_MODE_OK(TIM2_OCMode));
594 ; 197 assert_param(IS_TIM2_OUTPUT_STATE_OK(TIM2_OutputState));
596 ; 198 assert_param(IS_TIM2_OC_POLARITY_OK(TIM2_OCPolarity));
598 ; 202 TIM2->CCER1 &= (u8)(~( TIM2_CCER1_CC2E | TIM2_CCER1_CC2P ));
600 009d c65308 ld a,21256
601 00a0 a4cf and a,#207
602 00a2 c75308 ld 21256,a
603 ; 204 TIM2->CCER1 |= (u8)((TIM2_OutputState & TIM2_CCER1_CC2E ) | \
603 ; 205 (TIM2_OCPolarity & TIM2_CCER1_CC2P ));
605 00a5 7b08 ld a,(OFST+7,sp)
606 00a7 a420 and a,#32
607 00a9 6b01 ld (OFST+0,sp),a
608 00ab 9f ld a,xl
609 00ac a410 and a,#16
610 00ae 1a01 or a,(OFST+0,sp)
611 00b0 ca5308 or a,21256
612 00b3 c75308 ld 21256,a
613 ; 209 TIM2->CCMR2 = (u8)((TIM2->CCMR2 & (u8)(~TIM2_CCMR_OCM)) | (u8)TIM2_OCMode);
615 00b6 c65306 ld a,21254
616 00b9 a48f and a,#143
617 00bb 1a02 or a,(OFST+1,sp)
618 00bd c75306 ld 21254,a
619 ; 213 TIM2->CCR2H = (u8)(TIM2_Pulse >> 8);
621 00c0 7b06 ld a,(OFST+5,sp)
622 00c2 c75311 ld 21265,a
623 ; 214 TIM2->CCR2L = (u8)(TIM2_Pulse);
625 00c5 7b07 ld a,(OFST+6,sp)
626 00c7 c75312 ld 21266,a
627 ; 215 }
630 00ca 5b03 addw sp,#3
631 00cc 81 ret
695 ; 239 void TIM2_OC3Init(TIM2_OCMode_TypeDef TIM2_OCMode,
695 ; 240 TIM2_OutputState_TypeDef TIM2_OutputState,
695 ; 241 u16 TIM2_Pulse,
695 ; 242 TIM2_OCPolarity_TypeDef TIM2_OCPolarity)
695 ; 243 {
696 switch .text
697 00cd _TIM2_OC3Init:
699 00cd 89 pushw x
700 00ce 88 push a
701 00000001 OFST: set 1
704 ; 245 assert_param(IS_TIM2_OC_MODE_OK(TIM2_OCMode));
706 ; 246 assert_param(IS_TIM2_OUTPUT_STATE_OK(TIM2_OutputState));
708 ; 247 assert_param(IS_TIM2_OC_POLARITY_OK(TIM2_OCPolarity));
710 ; 249 TIM2->CCER2 &= (u8)(~( TIM2_CCER2_CC3E | TIM2_CCER2_CC3P));
712 00cf c65309 ld a,21257
713 00d2 a4fc and a,#252
714 00d4 c75309 ld 21257,a
715 ; 251 TIM2->CCER2 |= (u8)((TIM2_OutputState & TIM2_CCER2_CC3E ) | (TIM2_OCPolarity & TIM2_CCER2_CC3P ));
717 00d7 7b08 ld a,(OFST+7,sp)
718 00d9 a402 and a,#2
719 00db 6b01 ld (OFST+0,sp),a
720 00dd 9f ld a,xl
721 00de a401 and a,#1
722 00e0 1a01 or a,(OFST+0,sp)
723 00e2 ca5309 or a,21257
724 00e5 c75309 ld 21257,a
725 ; 254 TIM2->CCMR3 = (u8)((TIM2->CCMR3 & (u8)(~TIM2_CCMR_OCM)) | (u8)TIM2_OCMode);
727 00e8 c65307 ld a,21255
728 00eb a48f and a,#143
729 00ed 1a02 or a,(OFST+1,sp)
730 00ef c75307 ld 21255,a
731 ; 257 TIM2->CCR3H = (u8)(TIM2_Pulse >> 8);
733 00f2 7b06 ld a,(OFST+5,sp)
734 00f4 c75313 ld 21267,a
735 ; 258 TIM2->CCR3L = (u8)(TIM2_Pulse);
737 00f7 7b07 ld a,(OFST+6,sp)
738 00f9 c75314 ld 21268,a
739 ; 260 }
742 00fc 5b03 addw sp,#3
743 00fe 81 ret
936 ; 291 void TIM2_ICInit(TIM2_Channel_TypeDef TIM2_Channel,
936 ; 292 TIM2_ICPolarity_TypeDef TIM2_ICPolarity,
936 ; 293 TIM2_ICSelection_TypeDef TIM2_ICSelection,
936 ; 294 TIM2_ICPSC_TypeDef TIM2_ICPrescaler,
936 ; 295 u8 TIM2_ICFilter)
936 ; 296 {
937 switch .text
938 00ff _TIM2_ICInit:
940 00ff 89 pushw x
941 00000000 OFST: set 0
944 ; 298 assert_param(IS_TIM2_CHANNEL_OK(TIM2_Channel));
946 ; 299 assert_param(IS_TIM2_IC_POLARITY_OK(TIM2_ICPolarity));
948 ; 300 assert_param(IS_TIM2_IC_SELECTION_OK(TIM2_ICSelection));
950 ; 301 assert_param(IS_TIM2_IC_PRESCALER_OK(TIM2_ICPrescaler));
952 ; 302 assert_param(IS_TIM2_IC_FILTER_OK(TIM2_ICFilter));
954 ; 304 if (TIM2_Channel == TIM2_CHANNEL_1)
956 0100 9e ld a,xh
957 0101 4d tnz a
958 0102 2614 jrne L104
959 ; 307 TI1_Config(TIM2_ICPolarity,
959 ; 308 TIM2_ICSelection,
959 ; 309 TIM2_ICFilter);
961 0104 7b07 ld a,(OFST+7,sp)
962 0106 88 push a
963 0107 7b06 ld a,(OFST+6,sp)
964 0109 97 ld xl,a
965 010a 7b03 ld a,(OFST+3,sp)
966 010c 95 ld xh,a
967 010d cd0410 call L3_TI1_Config
969 0110 84 pop a
970 ; 312 TIM2_SetIC1Prescaler(TIM2_ICPrescaler);
972 0111 7b06 ld a,(OFST+6,sp)
973 0113 cd032c call _TIM2_SetIC1Prescaler
976 0116 202b jra L304
977 0118 L104:
978 ; 314 else if (TIM2_Channel == TIM2_CHANNEL_2)
980 0118 7b01 ld a,(OFST+1,sp)
981 011a 4a dec a
982 011b 2614 jrne L504
983 ; 317 TI2_Config(TIM2_ICPolarity,
983 ; 318 TIM2_ICSelection,
983 ; 319 TIM2_ICFilter);
985 011d 7b07 ld a,(OFST+7,sp)
986 011f 88 push a
987 0120 7b06 ld a,(OFST+6,sp)
988 0122 97 ld xl,a
989 0123 7b03 ld a,(OFST+3,sp)
990 0125 95 ld xh,a
991 0126 cd0440 call L5_TI2_Config
993 0129 84 pop a
994 ; 322 TIM2_SetIC2Prescaler(TIM2_ICPrescaler);
996 012a 7b06 ld a,(OFST+6,sp)
997 012c cd0339 call _TIM2_SetIC2Prescaler
1000 012f 2012 jra L304
1001 0131 L504:
1002 ; 327 TI3_Config(TIM2_ICPolarity,
1002 ; 328 TIM2_ICSelection,
1002 ; 329 TIM2_ICFilter);
1004 0131 7b07 ld a,(OFST+7,sp)
1005 0133 88 push a
1006 0134 7b06 ld a,(OFST+6,sp)
1007 0136 97 ld xl,a
1008 0137 7b03 ld a,(OFST+3,sp)
1009 0139 95 ld xh,a
1010 013a cd0470 call L7_TI3_Config
1012 013d 84 pop a
1013 ; 332 TIM2_SetIC3Prescaler(TIM2_ICPrescaler);
1015 013e 7b06 ld a,(OFST+6,sp)
1016 0140 cd0346 call _TIM2_SetIC3Prescaler
1018 0143 L304:
1019 ; 334 }
1022 0143 85 popw x
1023 0144 81 ret
1119 ; 363 void TIM2_PWMIConfig(TIM2_Channel_TypeDef TIM2_Channel,
1119 ; 364 TIM2_ICPolarity_TypeDef TIM2_ICPolarity,
1119 ; 365 TIM2_ICSelection_TypeDef TIM2_ICSelection,
1119 ; 366 TIM2_ICPSC_TypeDef TIM2_ICPrescaler,
1119 ; 367 u8 TIM2_ICFilter)
1119 ; 368 {
1120 switch .text
1121 0145 _TIM2_PWMIConfig:
1123 0145 89 pushw x
1124 0146 89 pushw x
1125 00000002 OFST: set 2
1128 ; 369 u8 icpolarity = (u8)TIM2_ICPOLARITY_RISING;
1130 ; 370 u8 icselection = (u8)TIM2_ICSELECTION_DIRECTTI;
1132 ; 373 assert_param(IS_TIM2_PWMI_CHANNEL_OK(TIM2_Channel));
1134 ; 374 assert_param(IS_TIM2_IC_POLARITY_OK(TIM2_ICPolarity));
1136 ; 375 assert_param(IS_TIM2_IC_SELECTION_OK(TIM2_ICSelection));
1138 ; 376 assert_param(IS_TIM2_IC_PRESCALER_OK(TIM2_ICPrescaler));
1140 ; 379 if (TIM2_ICPolarity != TIM2_ICPOLARITY_FALLING)
1142 0147 9f ld a,xl
1143 0148 a144 cp a,#68
1144 014a 2706 jreq L754
1145 ; 381 icpolarity = (u8)TIM2_ICPOLARITY_FALLING;
1147 014c a644 ld a,#68
1148 014e 6b01 ld (OFST-1,sp),a
1150 0150 2002 jra L164
1151 0152 L754:
1152 ; 385 icpolarity = (u8)TIM2_ICPOLARITY_RISING;
1154 0152 0f01 clr (OFST-1,sp)
1155 0154 L164:
1156 ; 389 if (TIM2_ICSelection == TIM2_ICSELECTION_DIRECTTI)
1158 0154 7b07 ld a,(OFST+5,sp)
1159 0156 4a dec a
1160 0157 2604 jrne L364
1161 ; 391 icselection = (u8)TIM2_ICSELECTION_INDIRECTTI;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -