📄 stm8s_tim3.ls
字号:
1 ; C Compiler for STM8 (COSMIC Software)
2 ; Parser V4.8.32.1 - 30 Mar 2010
3 ; Generator V4.3.4 - 23 Mar 2010
43 ; 62 void TIM3_DeInit(void)
43 ; 63 {
45 switch .text
46 0000 _TIM3_DeInit:
50 ; 65 TIM3->CR1 = (u8)TIM3_CR1_RESET_VALUE;
52 0000 725f5320 clr 21280
53 ; 66 TIM3->IER = (u8)TIM3_IER_RESET_VALUE;
55 0004 725f5321 clr 21281
56 ; 67 TIM3->SR2 = (u8)TIM3_SR2_RESET_VALUE;
58 0008 725f5323 clr 21283
59 ; 70 TIM3->CCER1 = (u8)TIM3_CCER1_RESET_VALUE;
61 000c 725f5327 clr 21287
62 ; 73 TIM3->CCER1 = (u8)TIM3_CCER1_RESET_VALUE;
64 0010 725f5327 clr 21287
65 ; 74 TIM3->CCMR1 = (u8)TIM3_CCMR1_RESET_VALUE;
67 0014 725f5325 clr 21285
68 ; 75 TIM3->CCMR2 = (u8)TIM3_CCMR2_RESET_VALUE;
70 0018 725f5326 clr 21286
71 ; 76 TIM3->CNTRH = (u8)TIM3_CNTRH_RESET_VALUE;
73 001c 725f5328 clr 21288
74 ; 77 TIM3->CNTRL = (u8)TIM3_CNTRL_RESET_VALUE;
76 0020 725f5329 clr 21289
77 ; 78 TIM3->PSCR = (u8)TIM3_PSCR_RESET_VALUE;
79 0024 725f532a clr 21290
80 ; 79 TIM3->ARRH = (u8)TIM3_ARRH_RESET_VALUE;
82 0028 35ff532b mov 21291,#255
83 ; 80 TIM3->ARRL = (u8)TIM3_ARRL_RESET_VALUE;
85 002c 35ff532c mov 21292,#255
86 ; 81 TIM3->CCR1H = (u8)TIM3_CCR1H_RESET_VALUE;
88 0030 725f532d clr 21293
89 ; 82 TIM3->CCR1L = (u8)TIM3_CCR1L_RESET_VALUE;
91 0034 725f532e clr 21294
92 ; 83 TIM3->CCR2H = (u8)TIM3_CCR2H_RESET_VALUE;
94 0038 725f532f clr 21295
95 ; 84 TIM3->CCR2L = (u8)TIM3_CCR2L_RESET_VALUE;
97 003c 725f5330 clr 21296
98 ; 85 TIM3->SR1 = (u8)TIM3_SR1_RESET_VALUE;
100 0040 725f5322 clr 21282
101 ; 86 }
104 0044 81 ret
270 ; 106 void TIM3_TimeBaseInit( TIM3_Prescaler_TypeDef TIM3_Prescaler,
270 ; 107 u16 TIM3_Period)
270 ; 108 {
271 switch .text
272 0045 _TIM3_TimeBaseInit:
274 0045 88 push a
275 00000000 OFST: set 0
278 ; 110 TIM3->PSCR = (u8)(TIM3_Prescaler);
280 0046 c7532a ld 21290,a
281 ; 112 TIM3->ARRH = (u8)(TIM3_Period >> 8);
283 0049 7b04 ld a,(OFST+4,sp)
284 004b c7532b ld 21291,a
285 ; 113 TIM3->ARRL = (u8)(TIM3_Period);
287 004e 7b05 ld a,(OFST+5,sp)
288 0050 c7532c ld 21292,a
289 ; 114 }
292 0053 84 pop a
293 0054 81 ret
448 ; 137 void TIM3_OC1Init(TIM3_OCMode_TypeDef TIM3_OCMode,
448 ; 138 TIM3_OutputState_TypeDef TIM3_OutputState,
448 ; 139 u16 TIM3_Pulse,
448 ; 140 TIM3_OCPolarity_TypeDef TIM3_OCPolarity)
448 ; 141 {
449 switch .text
450 0055 _TIM3_OC1Init:
452 0055 89 pushw x
453 0056 88 push a
454 00000001 OFST: set 1
457 ; 143 assert_param(IS_TIM3_OC_MODE_OK(TIM3_OCMode));
459 ; 144 assert_param(IS_TIM3_OUTPUT_STATE_OK(TIM3_OutputState));
461 ; 145 assert_param(IS_TIM3_OC_POLARITY_OK(TIM3_OCPolarity));
463 ; 148 TIM3->CCER1 &= (u8)(~( TIM3_CCER1_CC1E | TIM3_CCER1_CC1P));
465 0057 c65327 ld a,21287
466 005a a4fc and a,#252
467 005c c75327 ld 21287,a
468 ; 150 TIM3->CCER1 |= (u8)((TIM3_OutputState & TIM3_CCER1_CC1E ) | (TIM3_OCPolarity & TIM3_CCER1_CC1P ));
470 005f 7b08 ld a,(OFST+7,sp)
471 0061 a402 and a,#2
472 0063 6b01 ld (OFST+0,sp),a
473 0065 9f ld a,xl
474 0066 a401 and a,#1
475 0068 1a01 or a,(OFST+0,sp)
476 006a ca5327 or a,21287
477 006d c75327 ld 21287,a
478 ; 153 TIM3->CCMR1 = (u8)((TIM3->CCMR1 & (u8)(~TIM3_CCMR_OCM)) | (u8)TIM3_OCMode);
480 0070 c65325 ld a,21285
481 0073 a48f and a,#143
482 0075 1a02 or a,(OFST+1,sp)
483 0077 c75325 ld 21285,a
484 ; 156 TIM3->CCR1H = (u8)(TIM3_Pulse >> 8);
486 007a 7b06 ld a,(OFST+5,sp)
487 007c c7532d ld 21293,a
488 ; 157 TIM3->CCR1L = (u8)(TIM3_Pulse);
490 007f 7b07 ld a,(OFST+6,sp)
491 0081 c7532e ld 21294,a
492 ; 158 }
495 0084 5b03 addw sp,#3
496 0086 81 ret
558 ; 182 void TIM3_OC2Init(TIM3_OCMode_TypeDef TIM3_OCMode,
558 ; 183 TIM3_OutputState_TypeDef TIM3_OutputState,
558 ; 184 u16 TIM3_Pulse,
558 ; 185 TIM3_OCPolarity_TypeDef TIM3_OCPolarity)
558 ; 186 {
559 switch .text
560 0087 _TIM3_OC2Init:
562 0087 89 pushw x
563 0088 88 push a
564 00000001 OFST: set 1
567 ; 188 assert_param(IS_TIM3_OC_MODE_OK(TIM3_OCMode));
569 ; 189 assert_param(IS_TIM3_OUTPUT_STATE_OK(TIM3_OutputState));
571 ; 190 assert_param(IS_TIM3_OC_POLARITY_OK(TIM3_OCPolarity));
573 ; 194 TIM3->CCER1 &= (u8)(~( TIM3_CCER1_CC2E | TIM3_CCER1_CC2P ));
575 0089 c65327 ld a,21287
576 008c a4cf and a,#207
577 008e c75327 ld 21287,a
578 ; 196 TIM3->CCER1 |= (u8)((TIM3_OutputState & TIM3_CCER1_CC2E ) | (TIM3_OCPolarity & TIM3_CCER1_CC2P ));
580 0091 7b08 ld a,(OFST+7,sp)
581 0093 a420 and a,#32
582 0095 6b01 ld (OFST+0,sp),a
583 0097 9f ld a,xl
584 0098 a410 and a,#16
585 009a 1a01 or a,(OFST+0,sp)
586 009c ca5327 or a,21287
587 009f c75327 ld 21287,a
588 ; 200 TIM3->CCMR2 = (u8)((TIM3->CCMR2 & (u8)(~TIM3_CCMR_OCM)) | (u8)TIM3_OCMode);
590 00a2 c65326 ld a,21286
591 00a5 a48f and a,#143
592 00a7 1a02 or a,(OFST+1,sp)
593 00a9 c75326 ld 21286,a
594 ; 204 TIM3->CCR2H = (u8)(TIM3_Pulse >> 8);
596 00ac 7b06 ld a,(OFST+5,sp)
597 00ae c7532f ld 21295,a
598 ; 205 TIM3->CCR2L = (u8)(TIM3_Pulse);
600 00b1 7b07 ld a,(OFST+6,sp)
601 00b3 c75330 ld 21296,a
602 ; 206 }
605 00b6 5b03 addw sp,#3
606 00b8 81 ret
788 ; 236 void TIM3_ICInit(TIM3_Channel_TypeDef TIM3_Channel,
788 ; 237 TIM3_ICPolarity_TypeDef TIM3_ICPolarity,
788 ; 238 TIM3_ICSelection_TypeDef TIM3_ICSelection,
788 ; 239 TIM3_ICPSC_TypeDef TIM3_ICPrescaler,
788 ; 240 u8 TIM3_ICFilter)
788 ; 241 {
789 switch .text
790 00b9 _TIM3_ICInit:
792 00b9 89 pushw x
793 00000000 OFST: set 0
796 ; 243 assert_param(IS_TIM3_CHANNEL_OK(TIM3_Channel));
798 ; 244 assert_param(IS_TIM3_IC_POLARITY_OK(TIM3_ICPolarity));
800 ; 245 assert_param(IS_TIM3_IC_SELECTION_OK(TIM3_ICSelection));
802 ; 246 assert_param(IS_TIM3_IC_PRESCALER_OK(TIM3_ICPrescaler));
804 ; 247 assert_param(IS_TIM3_IC_FILTER_OK(TIM3_ICFilter));
806 ; 249 if (TIM3_Channel != TIM3_CHANNEL_2)
808 00ba 9e ld a,xh
809 00bb a101 cp a,#1
810 00bd 2714 jreq L333
811 ; 252 TI1_Config(TIM3_ICPolarity,
811 ; 253 TIM3_ICSelection,
811 ; 254 TIM3_ICFilter);
813 00bf 7b07 ld a,(OFST+7,sp)
814 00c1 88 push a
815 00c2 7b06 ld a,(OFST+6,sp)
816 00c4 97 ld xl,a
817 00c5 7b03 ld a,(OFST+3,sp)
818 00c7 95 ld xh,a
819 00c8 cd0363 call L3_TI1_Config
821 00cb 84 pop a
822 ; 257 TIM3_SetIC1Prescaler(TIM3_ICPrescaler);
824 00cc 7b06 ld a,(OFST+6,sp)
825 00ce cd0285 call _TIM3_SetIC1Prescaler
828 00d1 2012 jra L533
829 00d3 L333:
830 ; 262 TI2_Config(TIM3_ICPolarity,
830 ; 263 TIM3_ICSelection,
830 ; 264 TIM3_ICFilter);
832 00d3 7b07 ld a,(OFST+7,sp)
833 00d5 88 push a
834 00d6 7b06 ld a,(OFST+6,sp)
835 00d8 97 ld xl,a
836 00d9 7b03 ld a,(OFST+3,sp)
837 00db 95 ld xh,a
838 00dc cd0393 call L5_TI2_Config
840 00df 84 pop a
841 ; 267 TIM3_SetIC2Prescaler(TIM3_ICPrescaler);
843 00e0 7b06 ld a,(OFST+6,sp)
844 00e2 cd0292 call _TIM3_SetIC2Prescaler
846 00e5 L533:
847 ; 269 }
850 00e5 85 popw x
851 00e6 81 ret
941 ; 296 void TIM3_PWMIConfig(TIM3_Channel_TypeDef TIM3_Channel,
941 ; 297 TIM3_ICPolarity_TypeDef TIM3_ICPolarity,
941 ; 298 TIM3_ICSelection_TypeDef TIM3_ICSelection,
941 ; 299 TIM3_ICPSC_TypeDef TIM3_ICPrescaler,
941 ; 300 u8 TIM3_ICFilter)
941 ; 301 {
942 switch .text
943 00e7 _TIM3_PWMIConfig:
945 00e7 89 pushw x
946 00e8 89 pushw x
947 00000002 OFST: set 2
950 ; 302 u8 icpolarity = (u8)TIM3_ICPOLARITY_RISING;
952 ; 303 u8 icselection = (u8)TIM3_ICSELECTION_DIRECTTI;
954 ; 306 assert_param(IS_TIM3_PWMI_CHANNEL_OK(TIM3_Channel));
956 ; 307 assert_param(IS_TIM3_IC_POLARITY_OK(TIM3_ICPolarity));
958 ; 308 assert_param(IS_TIM3_IC_SELECTION_OK(TIM3_ICSelection));
960 ; 309 assert_param(IS_TIM3_IC_PRESCALER_OK(TIM3_ICPrescaler));
962 ; 312 if (TIM3_ICPolarity != TIM3_ICPOLARITY_FALLING)
964 00e9 9f ld a,xl
965 00ea a144 cp a,#68
966 00ec 2706 jreq L773
967 ; 314 icpolarity = (u8)TIM3_ICPOLARITY_FALLING;
969 00ee a644 ld a,#68
970 00f0 6b01 ld (OFST-1,sp),a
972 00f2 2002 jra L104
973 00f4 L773:
974 ; 318 icpolarity = (u8)TIM3_ICPOLARITY_RISING;
976 00f4 0f01 clr (OFST-1,sp)
977 00f6 L104:
978 ; 322 if (TIM3_ICSelection == TIM3_ICSELECTION_DIRECTTI)
980 00f6 7b07 ld a,(OFST+5,sp)
981 00f8 a101 cp a,#1
982 00fa 2606 jrne L304
983 ; 324 icselection = (u8)TIM3_ICSELECTION_INDIRECTTI;
985 00fc a602 ld a,#2
986 00fe 6b02 ld (OFST+0,sp),a
988 0100 2004 jra L504
989 0102 L304:
990 ; 328 icselection = (u8)TIM3_ICSELECTION_DIRECTTI;
992 0102 a601 ld a,#1
993 0104 6b02 ld (OFST+0,sp),a
994 0106 L504:
995 ; 331 if (TIM3_Channel != TIM3_CHANNEL_2)
997 0106 7b03 ld a,(OFST+1,sp)
998 0108 a101 cp a,#1
999 010a 2726 jreq L704
1000 ; 334 TI1_Config(TIM3_ICPolarity, TIM3_ICSelection,
1000 ; 335 TIM3_ICFilter);
1002 010c 7b09 ld a,(OFST+7,sp)
1003 010e 88 push a
1004 010f 7b08 ld a,(OFST+6,sp)
1005 0111 97 ld xl,a
1006 0112 7b05 ld a,(OFST+3,sp)
1007 0114 95 ld xh,a
1008 0115 cd0363 call L3_TI1_Config
1010 0118 84 pop a
1011 ; 338 TIM3_SetIC1Prescaler(TIM3_ICPrescaler);
1013 0119 7b08 ld a,(OFST+6,sp)
1014 011b cd0285 call _TIM3_SetIC1Prescaler
1016 ; 341 TI2_Config(icpolarity, icselection, TIM3_ICFilter);
1018 011e 7b09 ld a,(OFST+7,sp)
1019 0120 88 push a
1020 0121 7b03 ld a,(OFST+1,sp)
1021 0123 97 ld xl,a
1022 0124 7b02 ld a,(OFST+0,sp)
1023 0126 95 ld xh,a
1024 0127 cd0393 call L5_TI2_Config
1026 012a 84 pop a
1027 ; 344 TIM3_SetIC2Prescaler(TIM3_ICPrescaler);
1029 012b 7b08 ld a,(OFST+6,sp)
1030 012d cd0292 call _TIM3_SetIC2Prescaler
1033 0130 2024 jra L114
1034 0132 L704:
1035 ; 349 TI2_Config(TIM3_ICPolarity, TIM3_ICSelection,
1035 ; 350 TIM3_ICFilter);
1037 0132 7b09 ld a,(OFST+7,sp)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -