📄 calibrate.lst
字号:
1 .file "Calibrate.c"
2 .arch atmega8
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
11 .text
12 .Ltext0:
102 .global SetKey
104 SetKey:
1:driver/Calibrate.c **** /********************************************
2:driver/Calibrate.c **** 公司名称:
3:driver/Calibrate.c **** 文 件 名:
4:driver/Calibrate.c **** 版 本 号:
5:driver/Calibrate.c **** 程序设计:
6:driver/Calibrate.c **** 说 明:
7:driver/Calibrate.c **** 完成日期:
8:driver/Calibrate.c **** 修改日期:
9:driver/Calibrate.c **** 功能摘要:
10:driver/Calibrate.c **** **********************************************/
11:driver/Calibrate.c **** #define _Calibration
12:driver/Calibrate.c **** #include "includes.h"
13:driver/Calibrate.c ****
14:driver/Calibrate.c **** void Calibrate(void);
15:driver/Calibrate.c **** void SetKey(void);
16:driver/Calibrate.c ****
17:driver/Calibrate.c **** void Calibrate(void)
18:driver/Calibrate.c **** {
19:driver/Calibrate.c ****
20:driver/Calibrate.c **** DispBuf[ROW_5] = HIDE; //左面第一个数码管消隐
21:driver/Calibrate.c **** uchar AD_Buf[4];
22:driver/Calibrate.c **** uint16 i;
23:driver/Calibrate.c ****
24:driver/Calibrate.c **** Start_Calibrate:
25:driver/Calibrate.c ****
26:driver/Calibrate.c **** TaskID = 1;
27:driver/Calibrate.c ****
28:driver/Calibrate.c **** IO_HighAlarm = ON;
29:driver/Calibrate.c **** fH_Alarm = OFF;
30:driver/Calibrate.c **** IO_LowAlarm = ON;
31:driver/Calibrate.c **** fL_Alarm = OFF; //关闭报警
32:driver/Calibrate.c ****
33:driver/Calibrate.c **** Rest5460A();
34:driver/Calibrate.c **** Initi5460A();
35:driver/Calibrate.c ****
36:driver/Calibrate.c **** CS_AD_A = 0;
37:driver/Calibrate.c **** _delay_us(3);
38:driver/Calibrate.c **** CS_AD_B = 0;
39:driver/Calibrate.c **** Wr_ADByte(0xa0); //发校准命令
40:driver/Calibrate.c **** _delay_us(3);
41:driver/Calibrate.c **** CS_AD_A = 1;
42:driver/Calibrate.c **** CS_AD_B = 1;
43:driver/Calibrate.c ****
44:driver/Calibrate.c **** Dis_info(&DispBuf[ROW_4],"adj ");
45:driver/Calibrate.c **** fDispNow = 1;
46:driver/Calibrate.c **** DispProcess();
47:driver/Calibrate.c ****
48:driver/Calibrate.c **** while (!UP_KEY) wdt_reset();
49:driver/Calibrate.c **** SetKey(); //等待SET键按下
50:driver/Calibrate.c ****
51:driver/Calibrate.c **** //--------------------------------------
52:driver/Calibrate.c ****
53:driver/Calibrate.c **** Dis_info(&DispBuf[ROW_4],"in-1");
54:driver/Calibrate.c **** fDispNow = 1;
55:driver/Calibrate.c **** DispProcess();
56:driver/Calibrate.c ****
57:driver/Calibrate.c **** SetKey();
58:driver/Calibrate.c ****
59:driver/Calibrate.c **** CS_AD_A = 0;
60:driver/Calibrate.c **** CS_AD_B = 0;
61:driver/Calibrate.c **** _delay_us(3);
62:driver/Calibrate.c **** Wr_ADByte(0xDE); //发同时增益校准命令
63:driver/Calibrate.c **** _delay_us(3);
64:driver/Calibrate.c **** CS_AD_A = 1;
65:driver/Calibrate.c **** CS_AD_B = 1;
66:driver/Calibrate.c ****
67:driver/Calibrate.c **** Dis_info(&DispBuf[ROW_4],"run ");
68:driver/Calibrate.c **** fDispNow = 1;
69:driver/Calibrate.c **** DispProcess();
70:driver/Calibrate.c ****
71:driver/Calibrate.c ****
72:driver/Calibrate.c **** i = 500;
73:driver/Calibrate.c **** do{
74:driver/Calibrate.c **** _delay_ms(10);
75:driver/Calibrate.c **** wdt_reset();
76:driver/Calibrate.c **** }while(--i);
77:driver/Calibrate.c ****
78:driver/Calibrate.c **** Clear5460A();
79:driver/Calibrate.c ****
80:driver/Calibrate.c **** Dis_info(&DispBuf[ROW_4],"in-0");
81:driver/Calibrate.c **** fDispNow = 1;
82:driver/Calibrate.c **** DispProcess();
83:driver/Calibrate.c ****
84:driver/Calibrate.c **** SetKey();
85:driver/Calibrate.c ****
86:driver/Calibrate.c **** CS_AD_A = 0;
87:driver/Calibrate.c **** _delay_us(3);
88:driver/Calibrate.c **** CS_AD_B = 0;
89:driver/Calibrate.c **** Wr_ADByte(0xDD); //发同时偏移校准命令
90:driver/Calibrate.c **** _delay_us(3);
91:driver/Calibrate.c **** CS_AD_A = 1;
92:driver/Calibrate.c **** CS_AD_B = 1;
93:driver/Calibrate.c ****
94:driver/Calibrate.c **** Dis_info(&DispBuf[ROW_4],"run ");
95:driver/Calibrate.c **** fDispNow = 1;
96:driver/Calibrate.c **** DispProcess();
97:driver/Calibrate.c ****
98:driver/Calibrate.c **** i = 500;
99:driver/Calibrate.c **** do{
100:driver/Calibrate.c **** _delay_ms(10);
101:driver/Calibrate.c **** wdt_reset();
102:driver/Calibrate.c **** }while(--i);
103:driver/Calibrate.c ****
104:driver/Calibrate.c **** Clear5460A();
105:driver/Calibrate.c ****
106:driver/Calibrate.c **** //-----------------------------------
107:driver/Calibrate.c ****
108:driver/Calibrate.c **** #if 1
109:driver/Calibrate.c ****
110:driver/Calibrate.c **** CS_AD_A = 0;
111:driver/Calibrate.c **** CS_AD_B = 0;
112:driver/Calibrate.c **** Wr_ADByte(0xe8); //启动CS5460A
113:driver/Calibrate.c **** CS_AD_A = 1;
114:driver/Calibrate.c **** CS_AD_B = 1;
115:driver/Calibrate.c ****
116:driver/Calibrate.c **** Dis_info(&DispBuf[ROW_4],"in-1");
117:driver/Calibrate.c **** fDispNow = 1;
118:driver/Calibrate.c **** DispProcess();
119:driver/Calibrate.c **** SetKey();
120:driver/Calibrate.c ****
121:driver/Calibrate.c **** Dis_info(&DispBuf[ROW_4]," ua ");
122:driver/Calibrate.c **** fDispNow = 1;
123:driver/Calibrate.c **** DispProcess();
124:driver/Calibrate.c ****
125:driver/Calibrate.c **** SetKey();
126:driver/Calibrate.c ****
127:driver/Calibrate.c **** CS_AD_A = 0;
128:driver/Calibrate.c **** Rd5460A(AD_Buf,0x18); //读A相电压值
129:driver/Calibrate.c **** CS_AD_A = 1;
130:driver/Calibrate.c **** DoPot(&DispBuf[0],DealRms(AD_Buf,0x8234)); //0x411a=16 666
131:driver/Calibrate.c **** fDispNow = 1;
132:driver/Calibrate.c **** DispProcess();
133:driver/Calibrate.c **** SetKey();
134:driver/Calibrate.c ****
135:driver/Calibrate.c **** Dis_info(&DispBuf[ROW_4]," ia ");
136:driver/Calibrate.c **** fDispNow = 1;
137:driver/Calibrate.c **** DispProcess();
138:driver/Calibrate.c ****
139:driver/Calibrate.c **** SetKey();
140:driver/Calibrate.c ****
141:driver/Calibrate.c **** CS_AD_A = 0;
142:driver/Calibrate.c **** Rd5460A(AD_Buf,0x16); //读A相电流值
143:driver/Calibrate.c **** CS_AD_A = 1;
144:driver/Calibrate.c **** DoPot(&DispBuf[0],DealRms(AD_Buf,0x208d)); //0x208d=8 333
145:driver/Calibrate.c **** fDispNow = 1;
146:driver/Calibrate.c **** DispProcess();
147:driver/Calibrate.c **** SetKey();
148:driver/Calibrate.c ****
149:driver/Calibrate.c **** Dis_info(&DispBuf[ROW_4]," pa ");
150:driver/Calibrate.c **** fDispNow = 1;
151:driver/Calibrate.c **** DispProcess();
152:driver/Calibrate.c ****
153:driver/Calibrate.c **** SetKey();
154:driver/Calibrate.c ****
155:driver/Calibrate.c **** CS_AD_A = 0;
156:driver/Calibrate.c **** Rd5460A(AD_Buf,0x14); //读A相电压值
157:driver/Calibrate.c **** CS_AD_A = 1;
158:driver/Calibrate.c **** DoPot(&DispBuf[0],DealRms(AD_Buf,0x6f20)); //0x6f20=28 448
159:driver/Calibrate.c **** fDispNow = 1;
160:driver/Calibrate.c **** DispProcess();
161:driver/Calibrate.c **** SetKey();
162:driver/Calibrate.c ****
163:driver/Calibrate.c ****
164:driver/Calibrate.c ****
165:driver/Calibrate.c **** Dis_info(&DispBuf[ROW_4]," uc ");
166:driver/Calibrate.c **** fDispNow = 1;
167:driver/Calibrate.c **** DispProcess();
168:driver/Calibrate.c ****
169:driver/Calibrate.c **** SetKey();
170:driver/Calibrate.c ****
171:driver/Calibrate.c **** CS_AD_B = 0;
172:driver/Calibrate.c **** Rd5460A(AD_Buf,0x18); //读A相电流值
173:driver/Calibrate.c **** CS_AD_B = 1;
174:driver/Calibrate.c **** DoPot(&DispBuf[0],DealRms(AD_Buf,0x411a)); //0x411a=16 666
175:driver/Calibrate.c **** fDispNow = 1;
176:driver/Calibrate.c **** DispProcess();
177:driver/Calibrate.c **** SetKey();
178:driver/Calibrate.c ****
179:driver/Calibrate.c **** Dis_info(&DispBuf[ROW_4]," ic ");
180:driver/Calibrate.c **** fDispNow = 1;
181:driver/Calibrate.c **** DispProcess();
182:driver/Calibrate.c ****
183:driver/Calibrate.c **** SetKey();
184:driver/Calibrate.c ****
185:driver/Calibrate.c **** CS_AD_B = 0;
186:driver/Calibrate.c **** Rd5460A(AD_Buf,0x16); //读A相功率值
187:driver/Calibrate.c **** CS_AD_B = 1;
188:driver/Calibrate.c **** DoPot(&DispBuf[0],DealRms(AD_Buf,0x208d)); //0x208d=8 333
189:driver/Calibrate.c **** fDispNow = 1;
190:driver/Calibrate.c **** DispProcess();
191:driver/Calibrate.c **** SetKey();
192:driver/Calibrate.c ****
193:driver/Calibrate.c **** Dis_info(&DispBuf[ROW_4]," pc ");
194:driver/Calibrate.c **** fDispNow = 1;
195:driver/Calibrate.c **** DispProcess();
196:driver/Calibrate.c ****
197:driver/Calibrate.c **** SetKey();
198:driver/Calibrate.c ****
199:driver/Calibrate.c **** CS_AD_B = 0;
200:driver/Calibrate.c **** Rd5460A(AD_Buf,0x14); //读A相功率值
201:driver/Calibrate.c **** CS_AD_B = 1;
202:driver/Calibrate.c **** DoPot(&DispBuf[0],DealRms(AD_Buf,0x6f20)); //0x6f20=28 448
203:driver/Calibrate.c **** fDispNow = 1;
204:driver/Calibrate.c **** DispProcess();
205:driver/Calibrate.c **** SetKey();
206:driver/Calibrate.c ****
207:driver/Calibrate.c **** #endif
208:driver/Calibrate.c ****
209:driver/Calibrate.c **** //------------------------------------------------
210:driver/Calibrate.c **** Dis_info(&DispBuf[ROW_4],"end ");
211:driver/Calibrate.c **** fDispNow = 1;
212:driver/Calibrate.c **** DispProcess();
213:driver/Calibrate.c ****
214:driver/Calibrate.c **** while (1)
215:driver/Calibrate.c **** {
216:driver/Calibrate.c **** while (1) {
217:driver/Calibrate.c **** wdt_reset();
218:driver/Calibrate.c **** if (!SET_KEY)
219:driver/Calibrate.c **** break;
220:driver/Calibrate.c **** }
221:driver/Calibrate.c **** i = 100;
222:driver/Calibrate.c **** do {
223:driver/Calibrate.c **** wdt_reset();
224:driver/Calibrate.c **** _delay_ms(10);
225:driver/Calibrate.c **** _delay_ms(10);
226:driver/Calibrate.c **** if (SET_KEY)
227:driver/Calibrate.c **** goto Start_Calibrate;
228:driver/Calibrate.c **** } while (--i);
229:driver/Calibrate.c ****
230:driver/Calibrate.c **** Save_Calibrate();
231:driver/Calibrate.c **** while (1);
232:driver/Calibrate.c **** }
233:driver/Calibrate.c **** }
234:driver/Calibrate.c ****
235:driver/Calibrate.c ****
236:driver/Calibrate.c **** //-------------------------------------------
237:driver/Calibrate.c **** void SetKey(void)
238:driver/Calibrate.c **** {
106 .LM1:
107 /* prologue: frame size=0 */
108 /* prologue end (size=0) */
109 .L20:
239:driver/Calibrate.c **** while (1) {
240:driver/Calibrate.c **** wdt_reset();
111 .LM2:
112 /* #APP */
113 0000 A895 wdr
241:driver/Calibrate.c **** if (!SET_KEY)
115 .LM3:
116 /* #NOAPP */
117 0002 B599 sbic 54-0x20,5
118 0004 FDCF rjmp .L20
119 .LBB2:
120 .LBB3:
122 .Ltext1:
1:C:/WinAVR/avr/include/util/delay.h **** /* Copyright (c) 2002, Marek Michalkiewicz
2:C:/WinAVR/avr/include/util/delay.h **** Copyright (c) 2004,2005 Joerg Wunsch
3:C:/WinAVR/avr/include/util/delay.h **** All rights reserved.
4:C:/WinAVR/avr/include/util/delay.h ****
5:C:/WinAVR/avr/include/util/delay.h **** Redistribution and use in source and binary forms, with or without
6:C:/WinAVR/avr/include/util/delay.h **** modification, are permitted provided that the following conditions are met:
7:C:/WinAVR/avr/include/util/delay.h ****
8:C:/WinAVR/avr/include/util/delay.h **** * Redistributions of source code must retain the above copyright
9:C:/WinAVR/avr/include/util/delay.h **** notice, this list of conditions and the following disclaimer.
10:C:/WinAVR/avr/include/util/delay.h ****
11:C:/WinAVR/avr/include/util/delay.h **** * Redistributions in binary form must reproduce the above copyright
12:C:/WinAVR/avr/include/util/delay.h **** notice, this list of conditions and the following disclaimer in
13:C:/WinAVR/avr/include/util/delay.h **** the documentation and/or other materials provided with the
14:C:/WinAVR/avr/include/util/delay.h **** distribution.
15:C:/WinAVR/avr/include/util/delay.h ****
16:C:/WinAVR/avr/include/util/delay.h **** * Neither the name of the copyright holders nor the names of
17:C:/WinAVR/avr/include/util/delay.h **** contributors may be used to endorse or promote products derived
18:C:/WinAVR/avr/include/util/delay.h **** from this software without specific prior written permission.
19:C:/WinAVR/avr/include/util/delay.h ****
20:C:/WinAVR/avr/include/util/delay.h **** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21:C:/WinAVR/avr/include/util/delay.h **** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22:C:/WinAVR/avr/include/util/delay.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23:C:/WinAVR/avr/include/util/delay.h **** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24:C:/WinAVR/avr/include/util/delay.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25:C:/WinAVR/avr/include/util/delay.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26:C:/WinAVR/avr/include/util/delay.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27:C:/WinAVR/avr/include/util/delay.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28:C:/WinAVR/avr/include/util/delay.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29:C:/WinAVR/avr/include/util/delay.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30:C:/WinAVR/avr/include/util/delay.h **** POSSIBILITY OF SUCH DAMAGE. */
31:C:/WinAVR/avr/include/util/delay.h ****
32:C:/WinAVR/avr/include/util/delay.h **** /* $Id: delay.h,v 1.1.2.1 2005/12/12 23:19:49 joerg_wunsch Exp $ */
33:C:/WinAVR/avr/include/util/delay.h ****
34:C:/WinAVR/avr/include/util/delay.h **** #ifndef _UTIL_DELAY_H_
35:C:/WinAVR/avr/include/util/delay.h **** #define _UTIL_DELAY_H_ 1
36:C:/WinAVR/avr/include/util/delay.h ****
37:C:/WinAVR/avr/include/util/delay.h **** #include <inttypes.h>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -