2025-12-16 16:59:36 +08:00
|
|
|
|
C51 COMPILER V9.01 TIMER 12/16/2025 16:53:47 PAGE 1
|
2025-12-15 20:48:52 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C51 COMPILER V9.01, COMPILATION OF MODULE TIMER
|
|
|
|
|
|
OBJECT MODULE PLACED IN .\Objects\timer.obj
|
|
|
|
|
|
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE timer.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\tim
|
|
|
|
|
|
-er.lst) OBJECT(.\Objects\timer.obj)
|
|
|
|
|
|
|
|
|
|
|
|
line level source
|
|
|
|
|
|
|
|
|
|
|
|
1 /*---------------------------------------------------------------------*/
|
|
|
|
|
|
2 /* --- STC MCU Limited ------------------------------------------------*/
|
|
|
|
|
|
3 /* --- STC 1T Series MCU Demo Programme -------------------------------*/
|
|
|
|
|
|
4 /* --- Mobile: (86)13922805190 ----------------------------------------*/
|
|
|
|
|
|
5 /* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/
|
|
|
|
|
|
6 /* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/
|
|
|
|
|
|
7 /* --- Web: www.STCMCU.com --------------------------------------------*/
|
|
|
|
|
|
8 /* --- Web: www.STCMCUDATA.com ---------------------------------------*/
|
|
|
|
|
|
9 /* --- QQ: 800003751 -------------------------------------------------*/
|
|
|
|
|
|
10 /* <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ô˴<C3B4><CBB4><EFBFBD>,<2C><><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>STC<54><43><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
|
11 /*---------------------------------------------------------------------*/
|
|
|
|
|
|
12
|
|
|
|
|
|
13 /************* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> **************
|
|
|
|
|
|
14
|
|
|
|
|
|
15 <20><><EFBFBD>ļ<EFBFBD>ΪSTC8ϵ<38>еĶ<D0B5>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>жϳ<D0B6><CFB3><EFBFBD>,<2C>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><DEB8>Լ<EFBFBD><D4BC><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>жϳ<D0B6><CFB3><EFBFBD>.
|
|
|
|
|
|
16
|
|
|
|
|
|
17 ******************************************/
|
|
|
|
|
|
18
|
|
|
|
|
|
19 #include "timer.h"
|
|
|
|
|
|
20 u32 systick_1ms=0;
|
|
|
|
|
|
21 /********************* Timer0<72>жϺ<D0B6><CFBA><EFBFBD>************************/
|
|
|
|
|
|
22 void timer0_int (void) interrupt TIMER0_VECTOR
|
|
|
|
|
|
23 {
|
|
|
|
|
|
24 1 P67 = ~P67;
|
|
|
|
|
|
25 1 }
|
|
|
|
|
|
26
|
|
|
|
|
|
27 /********************* Timer1<72>жϺ<D0B6><CFBA><EFBFBD>************************/
|
|
|
|
|
|
28 void timer1_int (void) interrupt TIMER1_VECTOR
|
|
|
|
|
|
29 {
|
|
|
|
|
|
30 1 P66 = ~P66;
|
|
|
|
|
|
31 1 }
|
|
|
|
|
|
32
|
|
|
|
|
|
33 /********************* Timer2<72>жϺ<D0B6><CFBA><EFBFBD>************************/
|
|
|
|
|
|
34 void timer2_int (void) interrupt TIMER2_VECTOR
|
|
|
|
|
|
35 {
|
|
|
|
|
|
36 1 systick_1ms++;
|
|
|
|
|
|
37 1 }
|
|
|
|
|
|
38
|
|
|
|
|
|
39 /********************* Timer3<72>жϺ<D0B6><CFBA><EFBFBD>************************/
|
|
|
|
|
|
40 void timer3_int (void) interrupt TIMER3_VECTOR
|
|
|
|
|
|
41 {
|
|
|
|
|
|
42 1
|
|
|
|
|
|
43 1 }
|
|
|
|
|
|
44
|
|
|
|
|
|
45 /********************* Timer4<72>жϺ<D0B6><CFBA><EFBFBD>************************/
|
|
|
|
|
|
46 void timer4_int (void) interrupt TIMER4_VECTOR
|
|
|
|
|
|
47 {
|
|
|
|
|
|
48 1 P63 = ~P63;
|
|
|
|
|
|
49 1 }
|
|
|
|
|
|
50
|
|
|
|
|
|
51
|
|
|
|
|
|
52 //========================================================================
|
|
|
|
|
|
53 // <20><><EFBFBD><EFBFBD>: u8 Timer_Inilize(u8 TIM, TIM_InitTypeDef *TIMx)
|
|
|
|
|
|
54 // <20><><EFBFBD><EFBFBD>: <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
2025-12-16 16:59:36 +08:00
|
|
|
|
C51 COMPILER V9.01 TIMER 12/16/2025 16:53:47 PAGE 2
|
2025-12-15 20:48:52 +08:00
|
|
|
|
|
|
|
|
|
|
55 // <20><><EFBFBD><EFBFBD>: TIMx: <20>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>,<2C><><EFBFBD>ο<EFBFBD>timer.h<><68><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>.
|
|
|
|
|
|
56 // <20><><EFBFBD><EFBFBD>: <20>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>0, <20>ղ<EFBFBD><D5B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1,<2C><><EFBFBD><EFBFBD>2.
|
|
|
|
|
|
57 // <20>汾: V1.0, 2012-10-22
|
|
|
|
|
|
58 //========================================================================
|
|
|
|
|
|
59 u8 Timer_Inilize(u8 TIM, TIM_InitTypeDef *TIMx)
|
|
|
|
|
|
60 {
|
|
|
|
|
|
61 1 if(TIM > Timer4) return 1; //<2F>ղ<EFBFBD><D5B2><EFBFBD>
|
|
|
|
|
|
62 1
|
|
|
|
|
|
63 1 if(TIM == Timer0)
|
|
|
|
|
|
64 1 {
|
|
|
|
|
|
65 2 Timer0_Stop(); //ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
|
|
|
|
|
66 2 if(TIMx->TIM_Interrupt == ENABLE) Timer0_InterruptEnable(); //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|
|
|
|
|
67 2 else Timer0_InterruptDisable(); //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
|
|
|
|
|
68 2 if(TIMx->TIM_Priority > Priority_3) return 2; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
69 2 Timer0_Priority(TIMx->TIM_Priority); //ָ<><D6B8><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD>(<28>͵<EFBFBD><CDB5><EFBFBD>) Priority_0,Priority_1,Priority_2,Priority_
|
|
|
|
|
|
-3
|
|
|
|
|
|
70 2
|
|
|
|
|
|
71 2 if(TIMx->TIM_Mode >= TIM_16BitAutoReloadNoMask) return 2; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
72 2 TMOD = (TMOD & ~0x30) | TIMx->TIM_Mode; //<2F><><EFBFBD><EFBFBD>ģʽ,0: 16λ<36>Զ<EFBFBD><D4B6><EFBFBD>װ, 1: 16λ<36><CEBB>ʱ/<2F><><EFBFBD><EFBFBD>, 2: 8λ<38>Զ<EFBFBD><D4B6><EFBFBD>װ
|
|
|
|
|
|
73 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer0_12T(); //12T
|
|
|
|
|
|
74 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer0_1T(); //1T
|
|
|
|
|
|
75 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer0_AsCounter(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ
|
|
|
|
|
|
76 2 else Timer0_AsTimer(); //<2F><>ʱ
|
|
|
|
|
|
77 2 if(TIMx->TIM_ClkOut == ENABLE) Timer0_CLKO_Enable(); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
78 2 else Timer0_CLKO_Disable(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
79 2
|
|
|
|
|
|
80 2 T0_Load(TIMx->TIM_Value);
|
|
|
|
|
|
81 2 if(TIMx->TIM_Run == ENABLE) Timer0_Run(); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
|
|
|
|
|
82 2 return 0; //<2F>ɹ<EFBFBD>
|
|
|
|
|
|
83 2 }
|
|
|
|
|
|
84 1
|
|
|
|
|
|
85 1 if(TIM == Timer1)
|
|
|
|
|
|
86 1 {
|
|
|
|
|
|
87 2 Timer1_Stop(); //ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
|
|
|
|
|
88 2 if(TIMx->TIM_Interrupt == ENABLE) Timer1_InterruptEnable(); //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|
|
|
|
|
89 2 else Timer1_InterruptDisable(); //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
|
|
|
|
|
90 2 if(TIMx->TIM_Priority > Priority_3) return 2; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
91 2 Timer1_Priority(TIMx->TIM_Priority); //ָ<><D6B8><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD>(<28>͵<EFBFBD><CDB5><EFBFBD>) Priority_0,Priority_1,Priority_2,Priority_
|
|
|
|
|
|
-3
|
|
|
|
|
|
92 2 if(TIMx->TIM_Mode >= TIM_16BitAutoReloadNoMask) return 2; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
93 2 TMOD = (TMOD & ~0x30) | TIMx->TIM_Mode; //<2F><><EFBFBD><EFBFBD>ģʽ,0: 16λ<36>Զ<EFBFBD><D4B6><EFBFBD>װ, 1: 16λ<36><CEBB>ʱ/<2F><><EFBFBD><EFBFBD>, 2: 8λ<38>Զ<EFBFBD><D4B6><EFBFBD>װ
|
|
|
|
|
|
94 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer1_12T(); //12T
|
|
|
|
|
|
95 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer1_1T(); //1T
|
|
|
|
|
|
96 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer1_AsCounter(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ
|
|
|
|
|
|
97 2 else Timer1_AsTimer(); //<2F><>ʱ
|
|
|
|
|
|
98 2 if(TIMx->TIM_ClkOut == ENABLE) Timer1_CLKO_Enable(); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
99 2 else Timer1_CLKO_Disable(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
100 2
|
|
|
|
|
|
101 2 T1_Load(TIMx->TIM_Value);
|
|
|
|
|
|
102 2 if(TIMx->TIM_Run == ENABLE) Timer1_Run(); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
|
|
|
|
|
103 2 return 0; //<2F>ɹ<EFBFBD>
|
|
|
|
|
|
104 2 }
|
|
|
|
|
|
105 1
|
|
|
|
|
|
106 1 if(TIM == Timer2) //Timer2,<2C>̶<EFBFBD>Ϊ16λ<36>Զ<EFBFBD><D4B6><EFBFBD>װ, <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
|
|
|
|
|
107 1 {
|
|
|
|
|
|
108 2 Timer2_Stop(); //ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
|
|
|
|
|
109 2 if(TIMx->TIM_Interrupt == ENABLE) Timer2_InterruptEnable(); //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|
|
|
|
|
110 2 else Timer2_InterruptDisable(); //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
|
|
|
|
|
111 2 if(TIMx->TIM_ClkSource > TIM_CLOCK_Ext) return 2;
|
|
|
|
|
|
112 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer2_12T(); //12T
|
|
|
|
|
|
113 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer2_1T(); //1T
|
|
|
|
|
|
114 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer2_AsCounter(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ
|
2025-12-16 16:59:36 +08:00
|
|
|
|
C51 COMPILER V9.01 TIMER 12/16/2025 16:53:47 PAGE 3
|
2025-12-15 20:48:52 +08:00
|
|
|
|
|
|
|
|
|
|
115 2 else Timer2_AsTimer(); //<2F><>ʱ
|
|
|
|
|
|
116 2 if(TIMx->TIM_ClkOut == ENABLE) Timer2_CLKO_Enable(); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
117 2 else Timer2_CLKO_Disable(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
118 2
|
|
|
|
|
|
119 2 T2_Load(TIMx->TIM_Value);
|
|
|
|
|
|
120 2 if(TIMx->TIM_Run == ENABLE) Timer2_Run(); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
|
|
|
|
|
121 2 return 0; //<2F>ɹ<EFBFBD>
|
|
|
|
|
|
122 2 }
|
|
|
|
|
|
123 1
|
|
|
|
|
|
124 1 if(TIM == Timer3) //Timer3,<2C>̶<EFBFBD>Ϊ16λ<36>Զ<EFBFBD><D4B6><EFBFBD>װ, <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
|
|
|
|
|
125 1 {
|
|
|
|
|
|
126 2 Timer3_Stop(); //ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
|
|
|
|
|
127 2 if(TIMx->TIM_Interrupt == ENABLE) Timer3_InterruptEnable(); //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|
|
|
|
|
128 2 else Timer3_InterruptDisable(); //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
|
|
|
|
|
129 2 if(TIMx->TIM_ClkSource > TIM_CLOCK_Ext) return 2;
|
|
|
|
|
|
130 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer3_12T(); //12T
|
|
|
|
|
|
131 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer3_1T(); //1T
|
|
|
|
|
|
132 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer3_AsCounter(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ
|
|
|
|
|
|
133 2 else Timer3_AsTimer(); //<2F><>ʱ
|
|
|
|
|
|
134 2 if(TIMx->TIM_ClkOut == ENABLE) Timer3_CLKO_Enable(); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
135 2 else Timer3_CLKO_Disable(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
136 2
|
|
|
|
|
|
137 2 T3_Load(TIMx->TIM_Value);
|
|
|
|
|
|
138 2 if(TIMx->TIM_Run == ENABLE) Timer3_Run(); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
|
|
|
|
|
139 2 return 0; //<2F>ɹ<EFBFBD>
|
|
|
|
|
|
140 2 }
|
|
|
|
|
|
141 1
|
|
|
|
|
|
142 1 if(TIM == Timer4) //Timer3,<2C>̶<EFBFBD>Ϊ16λ<36>Զ<EFBFBD><D4B6><EFBFBD>װ, <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
|
|
|
|
|
143 1 {
|
|
|
|
|
|
144 2 Timer4_Stop(); //ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
|
|
|
|
|
145 2 if(TIMx->TIM_Interrupt == ENABLE) Timer4_InterruptEnable(); //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|
|
|
|
|
146 2 else Timer4_InterruptDisable(); //<2F><>ֹ<EFBFBD>ж<EFBFBD>
|
|
|
|
|
|
147 2 if(TIMx->TIM_ClkSource > TIM_CLOCK_Ext) return 2;
|
|
|
|
|
|
148 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer4_12T(); //12T
|
|
|
|
|
|
149 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer4_1T(); //1T
|
|
|
|
|
|
150 2 if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer4_AsCounter(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ
|
|
|
|
|
|
151 2 else Timer4_AsTimer(); //<2F><>ʱ
|
|
|
|
|
|
152 2 if(TIMx->TIM_ClkOut == ENABLE) Timer4_CLKO_Enable(); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
153 2 else Timer4_CLKO_Disable(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
154 2
|
|
|
|
|
|
155 2 T4_Load(TIMx->TIM_Value);
|
|
|
|
|
|
156 2 if(TIMx->TIM_Run == ENABLE) Timer4_Run(); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
|
|
|
|
|
157 2 return 0; //<2F>ɹ<EFBFBD>
|
|
|
|
|
|
158 2 }
|
|
|
|
|
|
159 1 return 2; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
160 1 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MODULE INFORMATION: STATIC OVERLAYABLE
|
|
|
|
|
|
CODE SIZE = 795 ----
|
|
|
|
|
|
CONSTANT SIZE = ---- ----
|
|
|
|
|
|
XDATA SIZE = ---- ----
|
|
|
|
|
|
PDATA SIZE = ---- ----
|
|
|
|
|
|
DATA SIZE = 4 ----
|
|
|
|
|
|
IDATA SIZE = ---- ----
|
|
|
|
|
|
BIT SIZE = ---- ----
|
|
|
|
|
|
END OF MODULE INFORMATION.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|