?? osc.lst
字號:
C51 COMPILER V6.12 OSC 09/05/2007 17:00:35 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE OSC
OBJECT MODULE PLACED IN osc.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE osc.c DB OE
stmt level source
1 /*------------------------------------------------------------
2 File Name: osc.c
3 Auther: Samuel
4 Revision: R1
5 History: R1 Jul.05, 2007 Creation
6 ------------------------------------------------------------*/
7
8 #include "common.h"
9 #include "osc.h"
10
11 void Osc_Init(Osc_Init_Parameter_t Osc_Init_Parameter)
12 {
13 1
14 1 switch(Osc_Init_Parameter.Source_Select)
15 1 {
16 2 case EXTERNAL_OSC:
17 2 {
18 3 switch(Osc_Init_Parameter.External_Mode)
19 3 {
20 4 case DISABLE:
21 4 break;
22 4
23 4 case COMS_CLK:
24 4 break;
25 4
26 4 case COMS_CLK_DIV2:
27 4 break;
28 4
29 4 case RC_OR_C_DIV2:
30 4 break;
31 4
32 4 case CRYSTAL:
33 4
34 4 if(Osc_Init_Parameter.Frequency>6700000)
35 4 {
36 5 OSCXCN = Reg_Field_Set(OSCXCN, BIT2);
37 5 OSCXCN = Reg_Field_Set(OSCXCN, BIT1);
38 5 OSCXCN = Reg_Field_Set(OSCXCN, BIT0);
39 5 }
40 4 else
41 4 {
42 5 if(Osc_Init_Parameter.Frequency>2200000)
43 5 {
44 6 OSCXCN = Reg_Field_Set(OSCXCN, BIT2);
45 6 OSCXCN = Reg_Field_Set(OSCXCN, BIT1);
46 6 OSCXCN = Reg_Field_Clr(OSCXCN, BIT0);
47 6 }
48 5 else
49 5 {
50 6 if(Osc_Init_Parameter.Frequency>720000)
51 6 {
52 7 OSCXCN = Reg_Field_Set(OSCXCN, BIT2);
53 7 OSCXCN = Reg_Field_Clr(OSCXCN, BIT1);
54 7 OSCXCN = Reg_Field_Set(OSCXCN, BIT0);
55 7 }
C51 COMPILER V6.12 OSC 09/05/2007 17:00:35 PAGE 2
56 6 else
57 6 {
58 7 if(Osc_Init_Parameter.Frequency>270000)
59 7 {
60 8 OSCXCN = Reg_Field_Set(OSCXCN, BIT2);
61 8 OSCXCN = Reg_Field_Clr(OSCXCN, BIT1);
62 8 OSCXCN = Reg_Field_Clr(OSCXCN, BIT0);
63 8 }
64 7 else
65 7 {
66 8 if(Osc_Init_Parameter.Frequency>95000)
67 8 {
68 9 OSCXCN = Reg_Field_Clr(OSCXCN, BIT2);
69 9 OSCXCN = Reg_Field_Set(OSCXCN, BIT1);
70 9 OSCXCN = Reg_Field_Set(OSCXCN, BIT0);
71 9 }
72 8 else
73 8 {
74 9 if(Osc_Init_Parameter.Frequency>30000)
75 9 {
76 10 OSCXCN = Reg_Field_Clr(OSCXCN, BIT2);
77 10 OSCXCN = Reg_Field_Set(OSCXCN, BIT1);
78 10 OSCXCN = Reg_Field_Clr(OSCXCN, BIT0);
79 10 }
80 9 else
81 9 {
82 10 if(Osc_Init_Parameter.Frequency>12000)
83 10 {
84 11 OSCXCN = Reg_Field_Clr(OSCXCN, BIT2);
85 11 OSCXCN = Reg_Field_Clr(OSCXCN, BIT1);
86 11 OSCXCN = Reg_Field_Set(OSCXCN, BIT0);
87 11 }
88 10 else
89 10 {
90 11 OSCXCN = Reg_Field_Clr(OSCXCN, BIT2);
91 11 OSCXCN = Reg_Field_Clr(OSCXCN, BIT1);
92 11 OSCXCN = Reg_Field_Clr(OSCXCN, BIT0);
93 11 }
94 10 }
95 9 }
96 8
97 8 }
98 7 }
99 6
100 6 }
101 5 }
102 4
103 4 OSCXCN = Reg_Field_Set(OSCXCN, BIT6);
104 4 OSCXCN = Reg_Field_Set(OSCXCN, BIT5);
105 4 OSCXCN = Reg_Field_Clr(OSCXCN, BIT4);
106 4
107 4 break;
108 4
109 4 case CRYSTAL_DIV2:
110 4 break;
111 4
112 4 default:
113 4 break;
114 4
115 4 }
116 3
117 3
C51 COMPILER V6.12 OSC 09/05/2007 17:00:35 PAGE 3
118 3 Loop_Delay(256);
119 3
120 3 while (!(OSCXCN & 0x80));
121 3
122 3 OSCICN = Reg_Field_Set(OSCICN, BIT3);
123 3 OSCICN = Reg_Field_Set(OSCICN, BIT7);
124 3 OSCICN = Reg_Field_Clr(OSCICN, BIT2);
125 3
126 3 while (!(OSCXCN & 0x80));
127 3
128 3 OSCICN = Reg_Field_Clr(OSCICN, BIT7);
129 3
130 3 break;
131 3 }
132 2
133 2 case INTERNAL_OSC:
134 2 {
135 3
136 3 break;
137 3 }
138 2
139 2 default:
140 2 {
141 3 break;
142 3 }
143 2 }
144 1
145 1
146 1 }
147
148
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 485 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -