📄 task2.lss
字号:
task2.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000434 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .bss 00000003 00802000 00000434 000004a8 2**0
ALLOC
2 .debug_aranges 00000040 00000000 00000000 000004a8 2**0
CONTENTS, READONLY, DEBUGGING
3 .debug_pubnames 0000011a 00000000 00000000 000004e8 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_info 0000104d 00000000 00000000 00000602 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_abbrev 00000323 00000000 00000000 0000164f 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_line 00000412 00000000 00000000 00001972 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_frame 000000c0 00000000 00000000 00001d84 2**2
CONTENTS, READONLY, DEBUGGING
8 .debug_str 0000096c 00000000 00000000 00001e44 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_loc 00000143 00000000 00000000 000027b0 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 fa 00 jmp 0x1f4 ; 0x1f4 <__ctors_end>
4: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
8: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
10: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
14: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
18: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
20: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
24: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
28: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
2c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
30: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
34: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
38: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
3c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
40: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
44: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
48: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
4c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
50: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
54: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
58: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
5c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
60: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
64: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
68: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
6c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
70: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
74: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
78: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
7c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
80: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
84: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
88: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
8c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
90: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
94: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
98: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
9c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
a0: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
a4: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
a8: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
ac: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
b0: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
b4: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
b8: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
bc: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
c0: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
c4: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
c8: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
cc: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
d0: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
d4: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
d8: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
dc: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
e0: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
e4: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
e8: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
ec: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
f0: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
f4: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
f8: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
fc: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
100: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
104: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
108: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
10c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
110: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
114: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
118: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
11c: 0c 94 1d 01 jmp 0x23a ; 0x23a <__vector_71>
120: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
124: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
128: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
12c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
130: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
134: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
138: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
13c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
140: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
144: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
148: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
14c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
150: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
154: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
158: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
15c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
160: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
164: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
168: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
16c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
170: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
174: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
178: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
17c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
180: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
184: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
188: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
18c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
190: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
194: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
198: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
19c: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1a0: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1a4: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1a8: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1ac: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1b0: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1b4: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1b8: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1bc: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1c0: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1c4: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1c8: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1cc: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1d0: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1d4: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1d8: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1dc: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1e0: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1e4: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1e8: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1ec: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
1f0: 0c 94 1b 01 jmp 0x236 ; 0x236 <__bad_interrupt>
000001f4 <__ctors_end>:
1f4: 11 24 eor r1, r1
1f6: 1f be out 0x3f, r1 ; 63
1f8: cf ef ldi r28, 0xFF ; 255
1fa: df e3 ldi r29, 0x3F ; 63
1fc: de bf out 0x3e, r29 ; 62
1fe: cd bf out 0x3d, r28 ; 61
200: 00 e0 ldi r16, 0x00 ; 0
202: 0c bf out 0x3c, r16 ; 60
00000204 <__do_copy_data>:
204: 10 e2 ldi r17, 0x20 ; 32
206: a0 e0 ldi r26, 0x00 ; 0
208: b0 e2 ldi r27, 0x20 ; 32
20a: e4 e3 ldi r30, 0x34 ; 52
20c: f4 e0 ldi r31, 0x04 ; 4
20e: 00 e0 ldi r16, 0x00 ; 0
210: 0b bf out 0x3b, r16 ; 59
212: 02 c0 rjmp .+4 ; 0x218 <__do_copy_data+0x14>
214: 07 90 elpm r0, Z+
216: 0d 92 st X+, r0
218: a0 30 cpi r26, 0x00 ; 0
21a: b1 07 cpc r27, r17
21c: d9 f7 brne .-10 ; 0x214 <__do_copy_data+0x10>
0000021e <__do_clear_bss>:
21e: 10 e2 ldi r17, 0x20 ; 32
220: a0 e0 ldi r26, 0x00 ; 0
222: b0 e2 ldi r27, 0x20 ; 32
224: 01 c0 rjmp .+2 ; 0x228 <.do_clear_bss_start>
00000226 <.do_clear_bss_loop>:
226: 1d 92 st X+, r1
00000228 <.do_clear_bss_start>:
228: a3 30 cpi r26, 0x03 ; 3
22a: b1 07 cpc r27, r17
22c: e1 f7 brne .-8 ; 0x226 <.do_clear_bss_loop>
22e: 0e 94 58 01 call 0x2b0 ; 0x2b0 <main>
232: 0c 94 18 02 jmp 0x430 ; 0x430 <_exit>
00000236 <__bad_interrupt>:
236: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
0000023a <__vector_71>:
volatile uint8_t offset;
volatile uint16_t ADC_result;
ISR(ADCA_CH0_vect)
{
23a: 1f 92 push r1
23c: 0f 92 push r0
23e: 0f b6 in r0, 0x3f ; 63
240: 0f 92 push r0
242: 00 90 5b 00 lds r0, 0x005B
246: 0f 92 push r0
248: 11 24 eor r1, r1
24a: 2f 93 push r18
24c: 8f 93 push r24
24e: 9f 93 push r25
250: ef 93 push r30
252: ff 93 push r31
// Getting the 8MSB of the result
ADC_result = ADCA.CH0.RES;
254: e0 e0 ldi r30, 0x00 ; 0
256: f2 e0 ldi r31, 0x02 ; 2
258: 84 a1 ldd r24, Z+36 ; 0x24
25a: 95 a1 ldd r25, Z+37 ; 0x25
25c: 80 93 00 20 sts 0x2000, r24
260: 90 93 01 20 sts 0x2001, r25
// Ignore negative results
if(ADC_result > 0x07FF)
264: 80 91 00 20 lds r24, 0x2000
268: 90 91 01 20 lds r25, 0x2001
26c: 80 50 subi r24, 0x00 ; 0
26e: 98 40 sbci r25, 0x08 ; 8
270: 20 f0 brcs .+8 ; 0x27a <__vector_71+0x40>
{
ADC_result = 0;
272: 10 92 00 20 sts 0x2000, r1
276: 10 92 01 20 sts 0x2001, r1
}
ADC_result = (ADC_result >> 4);
27a: 80 91 00 20 lds r24, 0x2000
27e: 90 91 01 20 lds r25, 0x2001
282: 92 95 swap r25
284: 82 95 swap r24
286: 8f 70 andi r24, 0x0F ; 15
288: 89 27 eor r24, r25
28a: 9f 70 andi r25, 0x0F ; 15
28c: 89 27 eor r24, r25
28e: 80 93 00 20 sts 0x2000, r24
292: 90 93 01 20 sts 0x2001, r25
}
296: ff 91 pop r31
298: ef 91 pop r30
29a: 9f 91 pop r25
29c: 8f 91 pop r24
29e: 2f 91 pop r18
2a0: 0f 90 pop r0
2a2: 00 92 5b 00 sts 0x005B, r0
2a6: 0f 90 pop r0
2a8: 0f be out 0x3f, r0 ; 63
2aa: 0f 90 pop r0
2ac: 1f 90 pop r1
2ae: 18 95 reti
000002b0 <main>:
int main( void )
{
2b0: ef 92 push r14
2b2: ff 92 push r15
2b4: 0f 93 push r16
2b6: 1f 93 push r17
/* Move stored calibration values to ADC A. */
ADC_CalibrationValues_Set(&ADCA);
2b8: 80 e0 ldi r24, 0x00 ; 0
2ba: 92 e0 ldi r25, 0x02 ; 2
2bc: 0e 94 03 02 call 0x406 ; 0x406 <ADC_CalibrationValues_Set>
/* Get offset value for ADC A. */
offset = ADC_Offset_Get(&ADCA);
2c0: 80 e0 ldi r24, 0x00 ; 0
2c2: 92 e0 ldi r25, 0x02 ; 2
2c4: 0e 94 d6 01 call 0x3ac ; 0x3ac <ADC_Offset_Get>
2c8: 80 93 02 20 sts 0x2002, r24
// Set as output, the 8 MSB of the ADC result is output here
LEDPORT.DIR = 0xFF;
2cc: e0 e6 ldi r30, 0x60 ; 96
2ce: f6 e0 ldi r31, 0x06 ; 6
2d0: 8f ef ldi r24, 0xFF ; 255
2d2: 80 83 st Z, r24
// Turn off the LEDs as Default
LEDPORT.OUT = 0xFF;
2d4: 84 83 std Z+4, r24 ; 0x04
// Set up ADC A to have signed conversion mode and a adjusted 12 bit resolution
ADC_ConvMode_and_Resolution_Config(&ADCA, true, ADC_RESOLUTION_12BIT_gc);
2d6: 00 e0 ldi r16, 0x00 ; 0
2d8: 12 e0 ldi r17, 0x02 ; 2
2da: f8 01 movw r30, r16
2dc: 81 81 ldd r24, Z+1 ; 0x01
2de: 89 7e andi r24, 0xE9 ; 233
2e0: 80 61 ori r24, 0x10 ; 16
2e2: 81 83 std Z+1, r24 ; 0x01
// Sample rate is CPUFREQ/8. Allow time for storing data
ADC_Prescaler_Config(&ADCA, ADC_PRESCALER_DIV8_gc);
2e4: 84 81 ldd r24, Z+4 ; 0x04
2e6: 88 7f andi r24, 0xF8 ; 248
2e8: 81 60 ori r24, 0x01 ; 1
2ea: 84 83 std Z+4, r24 ; 0x04
// Set reference voltage on ADC A to be VCC-0.6 V
ADC_Reference_Config(&ADCA, ADC_REFSEL_VCC_gc);
2ec: 82 81 ldd r24, Z+2 ; 0x02
2ee: 8f 7c andi r24, 0xCF ; 207
2f0: 80 61 ori r24, 0x10 ; 16
2f2: 82 83 std Z+2, r24 ; 0x02
// Setup channel 0, 1, 2 and 3 to have single ended input
ADC_Ch_InputMode_and_Gain_Config(&ADCA.CH0,
2f4: 0f 2e mov r0, r31
2f6: f0 e2 ldi r31, 0x20 ; 32
2f8: ef 2e mov r14, r31
2fa: f2 e0 ldi r31, 0x02 ; 2
2fc: ff 2e mov r15, r31
2fe: f0 2d mov r31, r0
300: f7 01 movw r30, r14
302: 80 81 ld r24, Z
304: 80 7e andi r24, 0xE0 ; 224
306: 81 60 ori r24, 0x01 ; 1
308: 80 83 st Z, r24
ADC_CH_INPUTMODE_SINGLEENDED_gc,
ADC_CH_GAIN_1X_gc);
// Set input to the channels in ADC A to be PIN 1
ADC_Ch_InputMux_Config( &ADCA.CH0,
30a: 88 e0 ldi r24, 0x08 ; 8
30c: 81 83 std Z+1, r24 ; 0x01
0);
// The ADC Compare (CMP) register must be set with the threshold value when
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -