📄 savetask.lst
字号:
1 .file "SaveTask.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 SaveFunData
104 SaveFunData:
1:driver/SaveTask.c **** /********************************************
2:driver/SaveTask.c **** 公司名称:
3:driver/SaveTask.c **** 文 件 名:SaveTask.c
4:driver/SaveTask.c **** 版 本 号:
5:driver/SaveTask.c **** 程序设计:
6:driver/SaveTask.c **** 说 明:各种参数保存函数
7:driver/SaveTask.c **** 完成日期:
8:driver/SaveTask.c **** 修改日期:
9:driver/SaveTask.c **** 功能摘要:
10:driver/SaveTask.c **** **********************************************/
11:driver/SaveTask.c **** #define _SaveTask
12:driver/SaveTask.c **** #include "includes.h"
13:driver/SaveTask.c ****
14:driver/SaveTask.c **** uint8 AddrVal;
15:driver/SaveTask.c **** uint16 PtVal;
16:driver/SaveTask.c **** uint16 CtVal;
17:driver/SaveTask.c **** uint8 BaudAndData; //通信波特率设置和数据格式设置
18:driver/SaveTask.c **** uint16 H_Alarm;
19:driver/SaveTask.c **** uint16 L_Alarm;
20:driver/SaveTask.c **** uint8 AlarmSwitch; //报警选项
21:driver/SaveTask.c ****
22:driver/SaveTask.c **** void SaveFunData(void); //保存设定参数,参数设定后常按set键
23:driver/SaveTask.c **** void LoadFunData(void); //加载设定参数,上电后初始化
24:driver/SaveTask.c **** void Save_Calibrate(void); //保存校验参数,校验以后常按set键
25:driver/SaveTask.c **** void LoadCalibration(void); //加载校验参数,上电后初始化
26:driver/SaveTask.c ****
27:driver/SaveTask.c **** //---------------------------------------
28:driver/SaveTask.c **** void SaveFunData(void)
29:driver/SaveTask.c **** {
106 .LM1:
107 /* prologue: frame size=11 */
108 0000 CF93 push r28
109 0002 DF93 push r29
110 0004 CDB7 in r28,__SP_L__
111 0006 DEB7 in r29,__SP_H__
112 0008 2B97 sbiw r28,11
113 000a 0FB6 in __tmp_reg__,__SREG__
114 000c F894 cli
115 000e DEBF out __SP_H__,r29
116 0010 0FBE out __SREG__,__tmp_reg__
117 0012 CDBF out __SP_L__,r28
118 /* prologue end (size=10) */
30:driver/SaveTask.c **** uint8 temp[11];
31:driver/SaveTask.c ****
32:driver/SaveTask.c **** temp[0] = ((uchar *)&PtVal)[0];
120 .LM2:
121 0014 8091 0000 lds r24,PtVal
122 0018 8983 std Y+1,r24
33:driver/SaveTask.c **** temp[1] = ((uchar *)&PtVal)[1];
124 .LM3:
125 001a 8091 0000 lds r24,PtVal+1
126 001e 8A83 std Y+2,r24
34:driver/SaveTask.c ****
35:driver/SaveTask.c **** temp[2] = ((uchar *)&CtVal)[0];
128 .LM4:
129 0020 8091 0000 lds r24,CtVal
130 0024 8B83 std Y+3,r24
36:driver/SaveTask.c **** temp[3] = ((uchar *)&CtVal)[1];
132 .LM5:
133 0026 8091 0000 lds r24,CtVal+1
134 002a 8C83 std Y+4,r24
37:driver/SaveTask.c ****
38:driver/SaveTask.c **** temp[4] = AddrVal;
136 .LM6:
137 002c 8091 0000 lds r24,AddrVal
138 0030 8D83 std Y+5,r24
39:driver/SaveTask.c **** temp[5] = BaudAndData;
140 .LM7:
141 0032 8091 0000 lds r24,BaudAndData
142 0036 8E83 std Y+6,r24
40:driver/SaveTask.c ****
41:driver/SaveTask.c **** temp[6] = ((uint8 *)&H_Alarm)[0];
144 .LM8:
145 0038 8091 0000 lds r24,H_Alarm
146 003c 8F83 std Y+7,r24
42:driver/SaveTask.c **** temp[7] = ((uint8 *)&H_Alarm)[1];
148 .LM9:
149 003e 8091 0000 lds r24,H_Alarm+1
150 0042 8887 std Y+8,r24
43:driver/SaveTask.c **** temp[8] = ((uint8 *)&L_Alarm)[0];
152 .LM10:
153 0044 8091 0000 lds r24,L_Alarm
154 0048 8987 std Y+9,r24
44:driver/SaveTask.c **** temp[9] = ((uint8 *)&L_Alarm)[1];
156 .LM11:
157 004a 8091 0000 lds r24,L_Alarm+1
158 004e 8A87 std Y+10,r24
45:driver/SaveTask.c **** temp[10] = AlarmSwitch;
160 .LM12:
161 0050 8091 0000 lds r24,AlarmSwitch
162 0054 8B87 std Y+11,r24
46:driver/SaveTask.c ****
47:driver/SaveTask.c ****
48:driver/SaveTask.c **** Write_EEProm_block(temp,(uint *)0x30,11);
164 .LM13:
165 0056 4BE0 ldi r20,lo8(11)
166 0058 60E3 ldi r22,lo8(48)
167 005a 70E0 ldi r23,hi8(48)
168 005c CE01 movw r24,r28
169 005e 0196 adiw r24,1
170 0060 00D0 rcall Write_EEProm_block
171 /* epilogue: frame size=11 */
172 0062 2B96 adiw r28,11
173 0064 0FB6 in __tmp_reg__,__SREG__
174 0066 F894 cli
175 0068 DEBF out __SP_H__,r29
176 006a 0FBE out __SREG__,__tmp_reg__
177 006c CDBF out __SP_L__,r28
178 006e DF91 pop r29
179 0070 CF91 pop r28
180 0072 0895 ret
181 /* epilogue end (size=9) */
182 /* function SaveFunData size 58 (39) */
187 .Lscope0:
189 .global LoadFunData
191 LoadFunData:
49:driver/SaveTask.c **** }
50:driver/SaveTask.c **** //--------------------------------------
51:driver/SaveTask.c ****
52:driver/SaveTask.c **** void LoadFunData(void)
53:driver/SaveTask.c **** {
193 .LM14:
194 /* prologue: frame size=11 */
195 0074 CF93 push r28
196 0076 DF93 push r29
197 0078 CDB7 in r28,__SP_L__
198 007a DEB7 in r29,__SP_H__
199 007c 2B97 sbiw r28,11
200 007e 0FB6 in __tmp_reg__,__SREG__
201 0080 F894 cli
202 0082 DEBF out __SP_H__,r29
203 0084 0FBE out __SREG__,__tmp_reg__
204 0086 CDBF out __SP_L__,r28
205 /* prologue end (size=10) */
54:driver/SaveTask.c **** uint8 temp[11];
55:driver/SaveTask.c ****
56:driver/SaveTask.c **** Read_EEProm_block(temp,(uint *)0x30,11);
207 .LM15:
208 0088 4BE0 ldi r20,lo8(11)
209 008a 60E3 ldi r22,lo8(48)
210 008c 70E0 ldi r23,hi8(48)
211 008e CE01 movw r24,r28
212 0090 0196 adiw r24,1
213 0092 00D0 rcall Read_EEProm_block
57:driver/SaveTask.c **** ((uchar *)&PtVal)[0] = temp[0];
215 .LM16:
216 0094 8981 ldd r24,Y+1
217 0096 8093 0000 sts PtVal,r24
58:driver/SaveTask.c **** ((uchar *)&PtVal)[1] = temp[1];
219 .LM17:
220 009a 8A81 ldd r24,Y+2
221 009c 8093 0000 sts PtVal+1,r24
59:driver/SaveTask.c ****
60:driver/SaveTask.c **** ((uchar *)&CtVal)[0] = temp[2];
223 .LM18:
224 00a0 8B81 ldd r24,Y+3
225 00a2 8093 0000 sts CtVal,r24
61:driver/SaveTask.c **** ((uchar *)&CtVal)[1] = temp[3];
227 .LM19:
228 00a6 8C81 ldd r24,Y+4
229 00a8 8093 0000 sts CtVal+1,r24
62:driver/SaveTask.c ****
63:driver/SaveTask.c **** AddrVal = temp[4];
231 .LM20:
232 00ac 2D81 ldd r18,Y+5
233 00ae 2093 0000 sts AddrVal,r18
64:driver/SaveTask.c **** BaudAndData = temp[5];
235 .LM21:
236 00b2 3E81 ldd r19,Y+6
237 00b4 3093 0000 sts BaudAndData,r19
65:driver/SaveTask.c ****
66:driver/SaveTask.c **** ((uint8 *)&H_Alarm)[0] = temp[6];
239 .LM22:
240 00b8 8F81 ldd r24,Y+7
241 00ba 8093 0000 sts H_Alarm,r24
67:driver/SaveTask.c **** ((uint8 *)&H_Alarm)[1] = temp[7];
243 .LM23:
244 00be 8885 ldd r24,Y+8
245 00c0 8093 0000 sts H_Alarm+1,r24
68:driver/SaveTask.c **** ((uint8 *)&L_Alarm)[0] = temp[8];
247 .LM24:
248 00c4 8985 ldd r24,Y+9
249 00c6 8093 0000 sts L_Alarm,r24
69:driver/SaveTask.c **** ((uint8 *)&L_Alarm)[1] = temp[9];
251 .LM25:
252 00ca 8A85 ldd r24,Y+10
253 00cc 8093 0000 sts L_Alarm+1,r24
70:driver/SaveTask.c **** AlarmSwitch = temp[10];
255 .LM26:
256 00d0 8B85 ldd r24,Y+11
257 00d2 8093 0000 sts AlarmSwitch,r24
71:driver/SaveTask.c ****
72:driver/SaveTask.c ****
73:driver/SaveTask.c **** if ((PtVal > 5000) || (PtVal == 0))
259 .LM27:
260 00d6 8091 0000 lds r24,PtVal
261 00da 9091 0000 lds r25,(PtVal)+1
262 00de 0197 sbiw r24,1
263 00e0 8858 subi r24,lo8(5000)
264 00e2 9341 sbci r25,hi8(5000)
265 00e4 30F0 brlo .L3
74:driver/SaveTask.c **** { PtVal = 1; }
267 .LM28:
268 00e6 81E0 ldi r24,lo8(1)
269 00e8 90E0 ldi r25,hi8(1)
270 00ea 9093 0000 sts (PtVal)+1,r25
271 00ee 8093 0000 sts PtVal,r24
272 .L3:
75:driver/SaveTask.c **** if ((CtVal > 2000) || (CtVal == 0))
274 .LM29:
275 00f2 8091 0000 lds r24,CtVal
276 00f6 9091 0000 lds r25,(CtVal)+1
277 00fa 0197 sbiw r24,1
278 00fc 805D subi r24,lo8(2000)
279 00fe 9740 sbci r25,hi8(2000)
280 0100 30F0 brlo .L4
76:driver/SaveTask.c **** { CtVal = 1; }
282 .LM30:
283 0102 81E0 ldi r24,lo8(1)
284 0104 90E0 ldi r25,hi8(1)
285 0106 9093 0000 sts (CtVal)+1,r25
286 010a 8093 0000 sts CtVal,r24
287 .L4:
77:driver/SaveTask.c ****
78:driver/SaveTask.c **** if ((H_Alarm > 9999)|| (H_Alarm == 0))
289 .LM31:
290 010e 8091 0000 lds r24,H_Alarm
291 0112 9091 0000 lds r25,(H_Alarm)+1
292 0116 0197 sbiw r24,1
293 0118 8F50 subi r24,lo8(9999)
294 011a 9742 sbci r25,hi8(9999)
295 011c 30F0 brlo .L5
79:driver/SaveTask.c **** { H_Alarm = 1; }
297 .LM32:
298 011e 81E0 ldi r24,lo8(1)
299 0120 90E0 ldi r25,hi8(1)
300 0122 9093 0000 sts (H_Alarm)+1,r25
301 0126 8093 0000 sts H_Alarm,r24
302 .L5:
80:driver/SaveTask.c **** if ((L_Alarm > 9999)|| (L_Alarm == 0))
304 .LM33:
305 012a 8091 0000 lds r24,L_Alarm
306 012e 9091 0000 lds r25,(L_Alarm)+1
307 0132 0197 sbiw r24,1
308 0134 8F50 subi r24,lo8(9999)
309 0136 9742 sbci r25,hi8(9999)
310 0138 30F0 brlo .L6
81:driver/SaveTask.c **** { L_Alarm = 1; }
312 .LM34:
313 013a 81E0 ldi r24,lo8(1)
314 013c 90E0 ldi r25,hi8(1)
315 013e 9093 0000 sts (L_Alarm)+1,r25
316 0142 8093 0000 sts L_Alarm,r24
317 .L6:
82:driver/SaveTask.c ****
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -