📄 adc_sram.lst
字号:
1 .file "adc_sram.c"
2 .arch atmega128
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
12 .text
13 .Ltext0:
74 .global INITIATION
76 INITIATION:
1:G:/HVCBASOFT/AD/adc_sram.c **** #include <avr/io.h>
2:G:/HVCBASOFT/AD/adc_sram.c **** #include <avr/signal.h>
3:G:/HVCBASOFT/AD/adc_sram.c **** #include <avr/interrupt.h>
4:G:/HVCBASOFT/AD/adc_sram.c **** #include <stdlib.h>
5:G:/HVCBASOFT/AD/adc_sram.c **** #include <inttypes.h>
6:G:/HVCBASOFT/AD/adc_sram.c **** #include "adc_sram.h"
7:G:/HVCBASOFT/AD/adc_sram.c **** #include "macro.h"
8:G:/HVCBASOFT/AD/adc_sram.c **** //全局变量/////////////////////////////
9:G:/HVCBASOFT/AD/adc_sram.c **** extern uint8_t global_sample_mode_flag;//采样方式标志:手动或自动
10:G:/HVCBASOFT/AD/adc_sram.c **** extern uint16_t global_ad_counter;//AD转换计数器
11:G:/HVCBASOFT/AD/adc_sram.c **** extern uint8_t global_operation_detected_flag;//检测到动作标志
12:G:/HVCBASOFT/AD/adc_sram.c **** uint8_t global_channel_flag;//通道标志
13:G:/HVCBASOFT/AD/adc_sram.c **** extern uint16_t global_close_counter;//合闸线圈地址计数器
14:G:/HVCBASOFT/AD/adc_sram.c **** extern uint16_t global_trip_counter;//分闸线圈地址计数器
15:G:/HVCBASOFT/AD/adc_sram.c **** extern uint16_t global_motor_counter;//打压电机地址计数器
16:G:/HVCBASOFT/AD/adc_sram.c **** extern uint16_t global_voltage_counter;//操作电压地址计数器
17:G:/HVCBASOFT/AD/adc_sram.c **** extern uint8_t global_ad_finish_flag;//AD转换结束标志
18:G:/HVCBASOFT/AD/adc_sram.c **** //AD板子的初始化,包括端口方向,串口初始化等
19:G:/HVCBASOFT/AD/adc_sram.c **** void INITIATION(void)
20:G:/HVCBASOFT/AD/adc_sram.c **** {
78 .LM1:
79 /* prologue: frame size=0 */
80 0000 CF93 push r28
81 0002 DF93 push r29
82 0004 CDB7 in r28,__SP_L__
83 0006 DEB7 in r29,__SP_H__
84 /* prologue end (size=4) */
21:G:/HVCBASOFT/AD/adc_sram.c **** DDRC=0xFF;//端口C输出
86 .LM2:
87 0008 8FEF ldi r24,lo8(-1)
88 000a 8093 3400 sts 52,r24
22:G:/HVCBASOFT/AD/adc_sram.c **** PORTC=0xFF;
90 .LM3:
91 000e 8FEF ldi r24,lo8(-1)
92 0010 8093 3500 sts 53,r24
23:G:/HVCBASOFT/AD/adc_sram.c **** DDRF|=0x0F;//端口F输出
94 .LM4:
95 0014 8091 6100 lds r24,97
96 0018 8F60 ori r24,lo8(15)
97 001a 8093 6100 sts 97,r24
24:G:/HVCBASOFT/AD/adc_sram.c **** sbi(DDRB,2);//CONVST初始化,输出
99 .LM5:
100 001e 8091 3700 lds r24,55
101 0022 8460 ori r24,lo8(4)
102 0024 8093 3700 sts 55,r24
25:G:/HVCBASOFT/AD/adc_sram.c **** sbi(PORTB,2);
104 .LM6:
105 0028 8091 3800 lds r24,56
106 002c 8460 ori r24,lo8(4)
107 002e 8093 3800 sts 56,r24
26:G:/HVCBASOFT/AD/adc_sram.c **** sbi(DDRG,0);//WR初始化,输出1
109 .LM7:
110 0032 8091 6400 lds r24,100
111 0036 8160 ori r24,lo8(1)
112 0038 8093 6400 sts 100,r24
27:G:/HVCBASOFT/AD/adc_sram.c **** sbi(PORTG,0);
114 .LM8:
115 003c 8091 6500 lds r24,101
116 0040 8160 ori r24,lo8(1)
117 0042 8093 6500 sts 101,r24
28:G:/HVCBASOFT/AD/adc_sram.c **** sbi(DDRG,1);//RD初始化,输出1
119 .LM9:
120 0046 8091 6400 lds r24,100
121 004a 8260 ori r24,lo8(2)
122 004c 8093 6400 sts 100,r24
29:G:/HVCBASOFT/AD/adc_sram.c **** sbi(PORTG,1);
124 .LM10:
125 0050 8091 6500 lds r24,101
126 0054 8260 ori r24,lo8(2)
127 0056 8093 6500 sts 101,r24
30:G:/HVCBASOFT/AD/adc_sram.c **** sbi(DDRG,2);//ALE初始化,输出1
129 .LM11:
130 005a 8091 6400 lds r24,100
131 005e 8460 ori r24,lo8(4)
132 0060 8093 6400 sts 100,r24
31:G:/HVCBASOFT/AD/adc_sram.c **** sbi(PORTG,2);
134 .LM12:
135 0064 8091 6500 lds r24,101
136 0068 8460 ori r24,lo8(4)
137 006a 8093 6500 sts 101,r24
32:G:/HVCBASOFT/AD/adc_sram.c **** sbi(DDRD,5);//CS_ADC初始化,输出1
139 .LM13:
140 006e 8091 3100 lds r24,49
141 0072 8062 ori r24,lo8(32)
142 0074 8093 3100 sts 49,r24
33:G:/HVCBASOFT/AD/adc_sram.c **** sbi(PORTD,5);
144 .LM14:
145 0078 8091 3200 lds r24,50
146 007c 8062 ori r24,lo8(32)
147 007e 8093 3200 sts 50,r24
34:G:/HVCBASOFT/AD/adc_sram.c **** sbi(DDRD,6);//CS_RAM初始化,输出1
149 .LM15:
150 0082 8091 3100 lds r24,49
151 0086 8064 ori r24,lo8(64)
152 0088 8093 3100 sts 49,r24
35:G:/HVCBASOFT/AD/adc_sram.c **** sbi(PORTD,6);
154 .LM16:
155 008c 8091 3200 lds r24,50
156 0090 8064 ori r24,lo8(64)
157 0092 8093 3200 sts 50,r24
36:G:/HVCBASOFT/AD/adc_sram.c **** UART_SETTING(19200,7372800);//串口初始化
159 .LM17:
160 0096 40E0 ldi r20,lo8(7372800)
161 0098 50E8 ldi r21,hi8(7372800)
162 009a 60E7 ldi r22,hlo8(7372800)
163 009c 70E0 ldi r23,hhi8(7372800)
164 009e 80E0 ldi r24,lo8(19200)
165 00a0 9BE4 ldi r25,hi8(19200)
166 00a2 0E94 0000 call UART_SETTING
37:G:/HVCBASOFT/AD/adc_sram.c **** sbi(DDRE,2);//串口接收控制
168 .LM18:
169 00a6 8091 2200 lds r24,34
170 00aa 8460 ori r24,lo8(4)
171 00ac 8093 2200 sts 34,r24
38:G:/HVCBASOFT/AD/adc_sram.c **** cbi(PORTE,2);
173 .LM19:
174 00b0 8091 2300 lds r24,35
175 00b4 8B7F andi r24,lo8(-5)
176 00b6 8093 2300 sts 35,r24
39:G:/HVCBASOFT/AD/adc_sram.c **** }
178 .LM20:
179 /* epilogue: frame size=0 */
180 00ba DF91 pop r29
181 00bc CF91 pop r28
182 00be 0895 ret
183 /* epilogue end (size=3) */
184 /* function INITIATION size 96 (89) */
186 .Lscope0:
189 .global delay_ms
191 delay_ms:
40:G:/HVCBASOFT/AD/adc_sram.c **** //延时程序
41:G:/HVCBASOFT/AD/adc_sram.c **** void delay_ms(void)
42:G:/HVCBASOFT/AD/adc_sram.c **** {
193 .LM21:
194 /* prologue: frame size=1 */
195 00c0 CF93 push r28
196 00c2 DF93 push r29
197 00c4 CDB7 in r28,__SP_L__
198 00c6 DEB7 in r29,__SP_H__
199 00c8 2197 sbiw r28,1
200 00ca 0FB6 in __tmp_reg__,__SREG__
201 00cc F894 cli
202 00ce DEBF out __SP_H__,r29
203 00d0 0FBE out __SREG__,__tmp_reg__
204 00d2 CDBF out __SP_L__,r28
205 /* prologue end (size=10) */
43:G:/HVCBASOFT/AD/adc_sram.c **** uint8_t i;
44:G:/HVCBASOFT/AD/adc_sram.c **** for(i=0;i<0x01;i++){;}
207 .LM22:
208 .LBB2:
209 00d4 1982 std Y+1,__zero_reg__
210 .L9:
211 00d6 8981 ldd r24,Y+1
212 00d8 8823 tst r24
213 00da 09F0 breq .L11
214 00dc 04C0 rjmp .L8
215 .L11:
216 00de 8981 ldd r24,Y+1
217 00e0 8F5F subi r24,lo8(-(1))
218 00e2 8983 std Y+1,r24
219 00e4 F8CF rjmp .L9
45:G:/HVCBASOFT/AD/adc_sram.c **** }
221 .LM23:
222 .L8:
223 .LBE2:
224 /* epilogue: frame size=1 */
225 00e6 2196 adiw r28,1
226 00e8 0FB6 in __tmp_reg__,__SREG__
227 00ea F894 cli
228 00ec DEBF out __SP_H__,r29
229 00ee 0FBE out __SREG__,__tmp_reg__
230 00f0 CDBF out __SP_L__,r28
231 00f2 DF91 pop r29
232 00f4 CF91 pop r28
233 00f6 0895 ret
234 /* epilogue end (size=9) */
235 /* function delay_ms size 28 (9) */
240 .Lscope1:
244 .global EXTERN_INTERRUPT_OPEN
246 EXTERN_INTERRUPT_OPEN:
46:G:/HVCBASOFT/AD/adc_sram.c ****
47:G:/HVCBASOFT/AD/adc_sram.c **** //开外部中断
48:G:/HVCBASOFT/AD/adc_sram.c **** void EXTERN_INTERRUPT_OPEN(uint8_t index)
49:G:/HVCBASOFT/AD/adc_sram.c **** {
248 .LM24:
249 /* prologue: frame size=1 */
250 00f8 CF93 push r28
251 00fa DF93 push r29
252 00fc CDB7 in r28,__SP_L__
253 00fe DEB7 in r29,__SP_H__
254 0100 2197 sbiw r28,1
255 0102 0FB6 in __tmp_reg__,__SREG__
256 0104 F894 cli
257 0106 DEBF out __SP_H__,r29
258 0108 0FBE out __SREG__,__tmp_reg__
259 010a CDBF out __SP_L__,r28
260 /* prologue end (size=10) */
261 010c 8983 std Y+1,r24
50:G:/HVCBASOFT/AD/adc_sram.c **** EICRA=0xAA;
263 .LM25:
264 010e 8AEA ldi r24,lo8(-86)
265 0110 8093 6A00 sts 106,r24
51:G:/HVCBASOFT/AD/adc_sram.c **** EICRB=0xAA;//设置下降沿触发
267 .LM26:
268 0114 8AEA ldi r24,lo8(-86)
269 0116 8093 5A00 sts 90,r24
52:G:/HVCBASOFT/AD/adc_sram.c **** sbi(EIMSK,index);
271 .LM27:
272 011a 8981 ldd r24,Y+1
273 011c 282F mov r18,r24
274 011e 3327 clr r19
275 0120 81E0 ldi r24,lo8(1)
276 0122 90E0 ldi r25,hi8(1)
277 0124 02C0 rjmp 2f
278 0126 880F 1: lsl r24
279 0128 991F rol r25
280 012a 2A95 2: dec r18
281 012c E2F7 brpl 1b
282 012e 2091 5900 lds r18,89
283 0132 822B or r24,r18
284 0134 8093 5900 sts 89,r24
53:G:/HVCBASOFT/AD/adc_sram.c **** sbi(SREG,7);//将寄存器SREG的“I”置1
286 .LM28:
287 0138 8091 5F00 lds r24,95
288 013c 8068 ori r24,lo8(-128)
289 013e 8093 5F00 sts 95,r24
54:G:/HVCBASOFT/AD/adc_sram.c **** }
291 .LM29:
292 /* epilogue: frame size=1 */
293 0142 2196 adiw r28,1
294 0144 0FB6 in __tmp_reg__,__SREG__
295 0146 F894 cli
296 0148 DEBF out __SP_H__,r29
297 014a 0FBE out __SREG__,__tmp_reg__
298 014c CDBF out __SP_L__,r28
299 014e DF91 pop r29
300 0150 CF91 pop r28
301 0152 0895 ret
302 /* epilogue end (size=9) */
303 /* function EXTERN_INTERRUPT_OPEN size 47 (28) */
305 .Lscope2:
309 .global EXTERN_INTERRUPT_CLOSE
311 EXTERN_INTERRUPT_CLOSE:
55:G:/HVCBASOFT/AD/adc_sram.c ****
56:G:/HVCBASOFT/AD/adc_sram.c **** //关外部中断
57:G:/HVCBASOFT/AD/adc_sram.c **** void EXTERN_INTERRUPT_CLOSE(uint8_t index)
58:G:/HVCBASOFT/AD/adc_sram.c **** {
313 .LM30:
314 /* prologue: frame size=1 */
315 0154 CF93 push r28
316 0156 DF93 push r29
317 0158 CDB7 in r28,__SP_L__
318 015a DEB7 in r29,__SP_H__
319 015c 2197 sbiw r28,1
320 015e 0FB6 in __tmp_reg__,__SREG__
321 0160 F894 cli
322 0162 DEBF out __SP_H__,r29
323 0164 0FBE out __SREG__,__tmp_reg__
324 0166 CDBF out __SP_L__,r28
325 /* prologue end (size=10) */
326 0168 8983 std Y+1,r24
59:G:/HVCBASOFT/AD/adc_sram.c **** cbi(EIMSK,index);
328 .LM31:
329 016a 8981 ldd r24,Y+1
330 016c 282F mov r18,r24
331 016e 3327 clr r19
332 0170 81E0 ldi r24,lo8(1)
333 0172 90E0 ldi r25,hi8(1)
334 0174 02C0 rjmp 2f
335 0176 880F 1: lsl r24
336 0178 991F rol r25
337 017a 2A95 2: dec r18
338 017c E2F7 brpl 1b
339 017e 982F mov r25,r24
340 0180 9095 com r25
341 0182 8091 5900 lds r24,89
342 0186 8923 and r24,r25
343 0188 8093 5900 sts 89,r24
60:G:/HVCBASOFT/AD/adc_sram.c **** // sbi(SREG,7);//将寄存器SREG的“I”置1
61:G:/HVCBASOFT/AD/adc_sram.c **** }
345 .LM32:
346 /* epilogue: frame size=1 */
347 018c 2196 adiw r28,1
348 018e 0FB6 in __tmp_reg__,__SREG__
349 0190 F894 cli
350 0192 DEBF out __SP_H__,r29
351 0194 0FBE out __SREG__,__tmp_reg__
352 0196 CDBF out __SP_L__,r28
353 0198 DF91 pop r29
354 019a CF91 pop r28
355 019c 0895 ret
356 /* epilogue end (size=9) */
357 /* function EXTERN_INTERRUPT_CLOSE size 38 (19) */
359 .Lscope3:
364 .global SRAM_1M_8_WRITE
366 SRAM_1M_8_WRITE:
62:G:/HVCBASOFT/AD/adc_sram.c ****
63:G:/HVCBASOFT/AD/adc_sram.c **** //SRAM写操作
64:G:/HVCBASOFT/AD/adc_sram.c **** void SRAM_1M_8_WRITE(uint32_t address,uint8_t data)
65:G:/HVCBASOFT/AD/adc_sram.c **** {
368 .LM33:
369 /* prologue: frame size=5 */
370 019e CF93 push r28
371 01a0 DF93 push r29
372 01a2 CDB7 in r28,__SP_L__
373 01a4 DEB7 in r29,__SP_H__
374 01a6 2597 sbiw r28,5
375 01a8 0FB6 in __tmp_reg__,__SREG__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -