bikegenerator/display/software/powerboard_v2/main.lss

914 lines
32 KiB
Plaintext

main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000073c 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .bss 00000055 00800060 00800060 000007b0 2**0
ALLOC
2 .stab 000006cc 00000000 00000000 000007b0 2**2
CONTENTS, READONLY, DEBUGGING
3 .stabstr 00000054 00000000 00000000 00000e7c 2**0
CONTENTS, READONLY, DEBUGGING
4 .comment 00000011 00000000 00000000 00000ed0 2**0
CONTENTS, READONLY
Disassembly of section .text:
00000000 <__vectors>:
0: 44 c0 rjmp .+136 ; 0x8a <__ctors_end>
2: 53 c0 rjmp .+166 ; 0xaa <__bad_interrupt>
4: 52 c0 rjmp .+164 ; 0xaa <__bad_interrupt>
6: 51 c0 rjmp .+162 ; 0xaa <__bad_interrupt>
8: 50 c0 rjmp .+160 ; 0xaa <__bad_interrupt>
a: 4f c0 rjmp .+158 ; 0xaa <__bad_interrupt>
c: 42 c1 rjmp .+644 ; 0x292 <__vector_6>
e: 4d c0 rjmp .+154 ; 0xaa <__bad_interrupt>
10: 4c c0 rjmp .+152 ; 0xaa <__bad_interrupt>
12: 4b c0 rjmp .+150 ; 0xaa <__bad_interrupt>
14: 4a c0 rjmp .+148 ; 0xaa <__bad_interrupt>
16: 3c c2 rjmp .+1144 ; 0x490 <__vector_11>
18: 67 c2 rjmp .+1230 ; 0x4e8 <__vector_12>
1a: 47 c0 rjmp .+142 ; 0xaa <__bad_interrupt>
1c: 46 c0 rjmp .+140 ; 0xaa <__bad_interrupt>
1e: 45 c0 rjmp .+138 ; 0xaa <__bad_interrupt>
20: 44 c0 rjmp .+136 ; 0xaa <__bad_interrupt>
22: 43 c0 rjmp .+134 ; 0xaa <__bad_interrupt>
24: 42 c0 rjmp .+132 ; 0xaa <__bad_interrupt>
00000026 <__c.1594>:
26: 42 61 74 74 65 72 79 20 56 6f 6c 74 61 67 65 3a Battery Voltage:
36: 20 20 20 00 .
0000003a <__c.1596>:
3a: 6d 56 0d 0a 00 mV...
0000003f <__c.1598>:
3f: 47 65 6e 65 72 61 74 6f 72 20 56 6f 6c 74 61 67 Generator Voltag
4f: 65 3a 20 20 20 00 e: .
00000055 <__c.1600>:
55: 6d 56 0d 0a 00 mV...
0000005a <__c.1602>:
5a: 47 65 6e 65 72 61 74 6f 72 3a 20 00 Generator: .
00000066 <__c.1604>:
66: 6d 41 20 20 00 mA .
0000006b <__c.1606>:
6b: 57 0d 0a 00 W...
0000006f <__c.1608>:
6f: 73 77 69 74 63 68 65 73 20 28 6c 6f 61 64 2c 20 switches (load,
7f: 67 65 6e 29 3a 20 00 gen): .
00000086 <__c.1610>:
86: 0d 0a 00 00 ....
0000008a <__ctors_end>:
8a: 11 24 eor r1, r1
8c: 1f be out 0x3f, r1 ; 63
8e: cf e5 ldi r28, 0x5F ; 95
90: d4 e0 ldi r29, 0x04 ; 4
92: de bf out 0x3e, r29 ; 62
94: cd bf out 0x3d, r28 ; 61
00000096 <__do_clear_bss>:
96: 10 e0 ldi r17, 0x00 ; 0
98: a0 e6 ldi r26, 0x60 ; 96
9a: b0 e0 ldi r27, 0x00 ; 0
9c: 01 c0 rjmp .+2 ; 0xa0 <.do_clear_bss_start>
0000009e <.do_clear_bss_loop>:
9e: 1d 92 st X+, r1
000000a0 <.do_clear_bss_start>:
a0: a5 3b cpi r26, 0xB5 ; 181
a2: b1 07 cpc r27, r17
a4: e1 f7 brne .-8 ; 0x9e <.do_clear_bss_loop>
a6: 9c d2 rcall .+1336 ; 0x5e0 <main>
a8: 47 c3 rjmp .+1678 ; 0x738 <_exit>
000000aa <__bad_interrupt>:
aa: aa cf rjmp .-172 ; 0x0 <__vectors>
000000ac <measure>:
ac: cf 93 push r28
ae: 64 e0 ldi r22, 0x04 ; 4
b0: 82 e0 ldi r24, 0x02 ; 2
b2: 45 d1 rcall .+650 ; 0x33e <adc_read_avg>
b4: cf e0 ldi r28, 0x0F ; 15
b6: 9c 01 movw r18, r24
b8: c2 9f mul r28, r18
ba: c0 01 movw r24, r0
bc: c3 9f mul r28, r19
be: 90 0d add r25, r0
c0: 11 24 eor r1, r1
c2: 8a 5e subi r24, 0xEA ; 234
c4: 9c 4f sbci r25, 0xFC ; 252
c6: 90 93 6b 00 sts 0x006B, r25
ca: 80 93 6a 00 sts 0x006A, r24
ce: 64 e0 ldi r22, 0x04 ; 4
d0: 80 e0 ldi r24, 0x00 ; 0
d2: 35 d1 rcall .+618 ; 0x33e <adc_read_avg>
d4: 9c 01 movw r18, r24
d6: c2 9f mul r28, r18
d8: c0 01 movw r24, r0
da: c3 9f mul r28, r19
dc: 90 0d add r25, r0
de: 11 24 eor r1, r1
e0: 90 93 69 00 sts 0x0069, r25
e4: 80 93 68 00 sts 0x0068, r24
e8: 64 e0 ldi r22, 0x04 ; 4
ea: 81 e0 ldi r24, 0x01 ; 1
ec: 28 d1 rcall .+592 ; 0x33e <adc_read_avg>
ee: 8f 5f subi r24, 0xFF ; 255
f0: 91 40 sbci r25, 0x01 ; 1
f2: 97 fd sbrc r25, 7
f4: 05 c0 rjmp .+10 ; 0x100 <measure+0x54>
f6: 90 93 6f 00 sts 0x006F, r25
fa: 80 93 6e 00 sts 0x006E, r24
fe: 04 c0 rjmp .+8 ; 0x108 <measure+0x5c>
100: 10 92 6f 00 sts 0x006F, r1
104: 10 92 6e 00 sts 0x006E, r1
108: 20 91 6e 00 lds r18, 0x006E
10c: 30 91 6f 00 lds r19, 0x006F
110: 48 e4 ldi r20, 0x48 ; 72
112: 42 9f mul r20, r18
114: c0 01 movw r24, r0
116: 43 9f mul r20, r19
118: 90 0d add r25, r0
11a: 11 24 eor r1, r1
11c: 90 93 67 00 sts 0x0067, r25
120: 80 93 66 00 sts 0x0066, r24
124: cf 91 pop r28
126: 08 95 ret
00000128 <get_power>:
128: cf 93 push r28
12a: df 93 push r29
12c: ec 01 movw r28, r24
12e: cb 01 movw r24, r22
130: 24 e6 ldi r18, 0x64 ; 100
132: 30 e0 ldi r19, 0x00 ; 0
134: b9 01 movw r22, r18
136: ed d2 rcall .+1498 ; 0x712 <__divmodhi4>
138: fb 01 movw r30, r22
13a: ce 01 movw r24, r28
13c: b9 01 movw r22, r18
13e: d5 d2 rcall .+1450 ; 0x6ea <__udivmodhi4>
140: e6 9f mul r30, r22
142: c0 01 movw r24, r0
144: e7 9f mul r30, r23
146: 90 0d add r25, r0
148: f6 9f mul r31, r22
14a: 90 0d add r25, r0
14c: 11 24 eor r1, r1
14e: b9 01 movw r22, r18
150: cc d2 rcall .+1432 ; 0x6ea <__udivmodhi4>
152: cb 01 movw r24, r22
154: df 91 pop r29
156: cf 91 pop r28
158: 08 95 ret
0000015a <pretty_print_all_values>:
15a: 86 e2 ldi r24, 0x26 ; 38
15c: 90 e0 ldi r25, 0x00 ; 0
15e: 33 d2 rcall .+1126 ; 0x5c6 <uart_puts_p>
160: 80 91 6a 00 lds r24, 0x006A
164: 90 91 6b 00 lds r25, 0x006B
168: 5e d1 rcall .+700 ; 0x426 <uart_print_uint16>
16a: 8a e3 ldi r24, 0x3A ; 58
16c: 90 e0 ldi r25, 0x00 ; 0
16e: 2b d2 rcall .+1110 ; 0x5c6 <uart_puts_p>
170: 8f e3 ldi r24, 0x3F ; 63
172: 90 e0 ldi r25, 0x00 ; 0
174: 28 d2 rcall .+1104 ; 0x5c6 <uart_puts_p>
176: 80 91 68 00 lds r24, 0x0068
17a: 90 91 69 00 lds r25, 0x0069
17e: 53 d1 rcall .+678 ; 0x426 <uart_print_uint16>
180: 85 e5 ldi r24, 0x55 ; 85
182: 90 e0 ldi r25, 0x00 ; 0
184: 20 d2 rcall .+1088 ; 0x5c6 <uart_puts_p>
186: 8a e5 ldi r24, 0x5A ; 90
188: 90 e0 ldi r25, 0x00 ; 0
18a: 1d d2 rcall .+1082 ; 0x5c6 <uart_puts_p>
18c: 80 91 66 00 lds r24, 0x0066
190: 90 91 67 00 lds r25, 0x0067
194: 48 d1 rcall .+656 ; 0x426 <uart_print_uint16>
196: 86 e6 ldi r24, 0x66 ; 102
198: 90 e0 ldi r25, 0x00 ; 0
19a: 15 d2 rcall .+1066 ; 0x5c6 <uart_puts_p>
19c: 80 91 66 00 lds r24, 0x0066
1a0: 90 91 67 00 lds r25, 0x0067
1a4: 24 e6 ldi r18, 0x64 ; 100
1a6: 30 e0 ldi r19, 0x00 ; 0
1a8: b9 01 movw r22, r18
1aa: b3 d2 rcall .+1382 ; 0x712 <__divmodhi4>
1ac: fb 01 movw r30, r22
1ae: 80 91 6a 00 lds r24, 0x006A
1b2: 90 91 6b 00 lds r25, 0x006B
1b6: b9 01 movw r22, r18
1b8: 98 d2 rcall .+1328 ; 0x6ea <__udivmodhi4>
1ba: e6 9f mul r30, r22
1bc: c0 01 movw r24, r0
1be: e7 9f mul r30, r23
1c0: 90 0d add r25, r0
1c2: f6 9f mul r31, r22
1c4: 90 0d add r25, r0
1c6: 11 24 eor r1, r1
1c8: b9 01 movw r22, r18
1ca: 8f d2 rcall .+1310 ; 0x6ea <__udivmodhi4>
1cc: cb 01 movw r24, r22
1ce: 2b d1 rcall .+598 ; 0x426 <uart_print_uint16>
1d0: 8b e6 ldi r24, 0x6B ; 107
1d2: 90 e0 ldi r25, 0x00 ; 0
1d4: f8 d1 rcall .+1008 ; 0x5c6 <uart_puts_p>
1d6: 8f e6 ldi r24, 0x6F ; 111
1d8: 90 e0 ldi r25, 0x00 ; 0
1da: f5 d1 rcall .+1002 ; 0x5c6 <uart_puts_p>
1dc: 86 b3 in r24, 0x16 ; 22
1de: 81 70 andi r24, 0x01 ; 1
1e0: 80 5d subi r24, 0xD0 ; 208
1e2: d5 d1 rcall .+938 ; 0x58e <uart_putc>
1e4: 8c e2 ldi r24, 0x2C ; 44
1e6: d3 d1 rcall .+934 ; 0x58e <uart_putc>
1e8: 86 b3 in r24, 0x16 ; 22
1ea: 86 95 lsr r24
1ec: 81 70 andi r24, 0x01 ; 1
1ee: 80 5d subi r24, 0xD0 ; 208
1f0: ce d1 rcall .+924 ; 0x58e <uart_putc>
1f2: 86 e8 ldi r24, 0x86 ; 134
1f4: 90 e0 ldi r25, 0x00 ; 0
1f6: e7 c1 rjmp .+974 ; 0x5c6 <uart_puts_p>
000001f8 <handle_over_and_undervoltage>:
1f8: 80 91 6a 00 lds r24, 0x006A
1fc: 90 91 6b 00 lds r25, 0x006B
200: 80 3c cpi r24, 0xC0 ; 192
202: 9b 42 sbci r25, 0x2B ; 43
204: 50 f4 brcc .+20 ; 0x21a <handle_over_and_undervoltage+0x22>
206: 10 92 62 00 sts 0x0062, r1
20a: 80 91 63 00 lds r24, 0x0063
20e: 85 30 cpi r24, 0x05 ; 5
210: 68 f4 brcc .+26 ; 0x22c <handle_over_and_undervoltage+0x34>
212: 8f 5f subi r24, 0xFF ; 255
214: 80 93 63 00 sts 0x0063, r24
218: 09 c0 rjmp .+18 ; 0x22c <handle_over_and_undervoltage+0x34>
21a: 10 92 63 00 sts 0x0063, r1
21e: 80 91 62 00 lds r24, 0x0062
222: 83 30 cpi r24, 0x03 ; 3
224: 18 f4 brcc .+6 ; 0x22c <handle_over_and_undervoltage+0x34>
226: 8f 5f subi r24, 0xFF ; 255
228: 80 93 62 00 sts 0x0062, r24
22c: 80 91 68 00 lds r24, 0x0068
230: 90 91 69 00 lds r25, 0x0069
234: 89 3c cpi r24, 0xC9 ; 201
236: 92 43 sbci r25, 0x32 ; 50
238: 50 f0 brcs .+20 ; 0x24e <handle_over_and_undervoltage+0x56>
23a: 10 92 60 00 sts 0x0060, r1
23e: 80 91 61 00 lds r24, 0x0061
242: 82 30 cpi r24, 0x02 ; 2
244: 68 f4 brcc .+26 ; 0x260 <handle_over_and_undervoltage+0x68>
246: 8f 5f subi r24, 0xFF ; 255
248: 80 93 61 00 sts 0x0061, r24
24c: 09 c0 rjmp .+18 ; 0x260 <handle_over_and_undervoltage+0x68>
24e: 10 92 61 00 sts 0x0061, r1
252: 80 91 60 00 lds r24, 0x0060
256: 82 30 cpi r24, 0x02 ; 2
258: 18 f4 brcc .+6 ; 0x260 <handle_over_and_undervoltage+0x68>
25a: 8f 5f subi r24, 0xFF ; 255
25c: 80 93 60 00 sts 0x0060, r24
260: 80 91 63 00 lds r24, 0x0063
264: 85 30 cpi r24, 0x05 ; 5
266: 18 f0 brcs .+6 ; 0x26e <handle_over_and_undervoltage+0x76>
268: 10 92 62 00 sts 0x0062, r1
26c: 10 c0 rjmp .+32 ; 0x28e <handle_over_and_undervoltage+0x96>
26e: 80 91 62 00 lds r24, 0x0062
272: 83 30 cpi r24, 0x03 ; 3
274: 68 f0 brcs .+26 ; 0x290 <handle_over_and_undervoltage+0x98>
276: 10 92 63 00 sts 0x0063, r1
27a: 80 91 61 00 lds r24, 0x0061
27e: 82 30 cpi r24, 0x02 ; 2
280: 10 f0 brcs .+4 ; 0x286 <handle_over_and_undervoltage+0x8e>
282: c0 9a sbi 0x18, 0 ; 24
284: 08 95 ret
286: 80 91 60 00 lds r24, 0x0060
28a: 82 30 cpi r24, 0x02 ; 2
28c: 08 f0 brcs .+2 ; 0x290 <handle_over_and_undervoltage+0x98>
28e: c0 98 cbi 0x18, 0 ; 24
290: 08 95 ret
00000292 <__vector_6>:
292: 1f 92 push r1
294: 0f 92 push r0
296: 0f b6 in r0, 0x3f ; 63
298: 0f 92 push r0
29a: 11 24 eor r1, r1
29c: 2f 93 push r18
29e: 3f 93 push r19
2a0: 4f 93 push r20
2a2: 5f 93 push r21
2a4: 6f 93 push r22
2a6: 7f 93 push r23
2a8: 8f 93 push r24
2aa: 9f 93 push r25
2ac: 80 91 6c 00 lds r24, 0x006C
2b0: 90 91 6d 00 lds r25, 0x006D
2b4: 01 96 adiw r24, 0x01 ; 1
2b6: 90 93 6d 00 sts 0x006D, r25
2ba: 80 93 6c 00 sts 0x006C, r24
2be: 20 91 6c 00 lds r18, 0x006C
2c2: 30 91 6d 00 lds r19, 0x006D
2c6: 81 e0 ldi r24, 0x01 ; 1
2c8: 90 e0 ldi r25, 0x00 ; 0
2ca: 20 36 cpi r18, 0x60 ; 96
2cc: 4a ee ldi r20, 0xEA ; 234
2ce: 34 07 cpc r19, r20
2d0: 10 f4 brcc .+4 ; 0x2d6 <__vector_6+0x44>
2d2: 80 e0 ldi r24, 0x00 ; 0
2d4: 90 e0 ldi r25, 0x00 ; 0
2d6: 60 e6 ldi r22, 0x60 ; 96
2d8: 7a ee ldi r23, 0xEA ; 234
2da: 86 9f mul r24, r22
2dc: a0 01 movw r20, r0
2de: 87 9f mul r24, r23
2e0: 50 0d add r21, r0
2e2: 96 9f mul r25, r22
2e4: 50 0d add r21, r0
2e6: 11 24 eor r1, r1
2e8: c9 01 movw r24, r18
2ea: 84 1b sub r24, r20
2ec: 95 0b sbc r25, r21
2ee: 90 93 6d 00 sts 0x006D, r25
2f2: 80 93 6c 00 sts 0x006C, r24
2f6: 9f 91 pop r25
2f8: 8f 91 pop r24
2fa: 7f 91 pop r23
2fc: 6f 91 pop r22
2fe: 5f 91 pop r21
300: 4f 91 pop r20
302: 3f 91 pop r19
304: 2f 91 pop r18
306: 0f 90 pop r0
308: 0f be out 0x3f, r0 ; 63
30a: 0f 90 pop r0
30c: 1f 90 pop r1
30e: 18 95 reti
00000310 <adc_init>:
310: 80 e4 ldi r24, 0x40 ; 64
312: 87 b9 out 0x07, r24 ; 7
314: 83 e0 ldi r24, 0x03 ; 3
316: 86 b9 out 0x06, r24 ; 6
318: 37 9a sbi 0x06, 7 ; 6
31a: 36 9a sbi 0x06, 6 ; 6
31c: 36 99 sbic 0x06, 6 ; 6
31e: fe cf rjmp .-4 ; 0x31c <adc_init+0xc>
320: 84 b1 in r24, 0x04 ; 4
322: 95 b1 in r25, 0x05 ; 5
324: 08 95 ret
00000326 <adc_read_single>:
326: 97 b1 in r25, 0x07 ; 7
328: 8f 71 andi r24, 0x1F ; 31
32a: 90 7e andi r25, 0xE0 ; 224
32c: 89 2b or r24, r25
32e: 87 b9 out 0x07, r24 ; 7
330: 36 9a sbi 0x06, 6 ; 6
332: 36 99 sbic 0x06, 6 ; 6
334: fe cf rjmp .-4 ; 0x332 <adc_read_single+0xc>
336: 24 b1 in r18, 0x04 ; 4
338: 35 b1 in r19, 0x05 ; 5
33a: c9 01 movw r24, r18
33c: 08 95 ret
0000033e <adc_read_avg>:
33e: ff 92 push r15
340: 0f 93 push r16
342: 1f 93 push r17
344: cf 93 push r28
346: df 93 push r29
348: 08 2f mov r16, r24
34a: 86 2f mov r24, r22
34c: 6c e3 ldi r22, 0x3C ; 60
34e: c1 d1 rcall .+898 ; 0x6d2 <__udivmodqi4>
350: f9 2e mov r15, r25
352: 10 e0 ldi r17, 0x00 ; 0
354: c0 e0 ldi r28, 0x00 ; 0
356: d0 e0 ldi r29, 0x00 ; 0
358: 05 c0 rjmp .+10 ; 0x364 <adc_read_avg+0x26>
35a: 80 2f mov r24, r16
35c: e4 df rcall .-56 ; 0x326 <adc_read_single>
35e: c8 0f add r28, r24
360: d9 1f adc r29, r25
362: 1f 5f subi r17, 0xFF ; 255
364: 1f 11 cpse r17, r15
366: f9 cf rjmp .-14 ; 0x35a <adc_read_avg+0x1c>
368: 61 2f mov r22, r17
36a: ce 01 movw r24, r28
36c: 70 e0 ldi r23, 0x00 ; 0
36e: bd d1 rcall .+890 ; 0x6ea <__udivmodhi4>
370: cb 01 movw r24, r22
372: df 91 pop r29
374: cf 91 pop r28
376: 1f 91 pop r17
378: 0f 91 pop r16
37a: ff 90 pop r15
37c: 08 95 ret
0000037e <wait>:
37e: 81 11 cpse r24, r1
380: 01 c0 rjmp .+2 ; 0x384 <wait+0x6>
382: 84 e6 ldi r24, 0x64 ; 100
384: 90 e0 ldi r25, 0x00 ; 0
386: ef e1 ldi r30, 0x1F ; 31
388: fe e4 ldi r31, 0x4E ; 78
38a: 31 97 sbiw r30, 0x01 ; 1
38c: f1 f7 brne .-4 ; 0x38a <wait+0xc>
38e: 00 c0 rjmp .+0 ; 0x390 <wait+0x12>
390: 00 00 nop
392: 9f 5f subi r25, 0xFF ; 255
394: 98 13 cpse r25, r24
396: f7 cf rjmp .-18 ; 0x386 <wait+0x8>
398: 08 95 ret
0000039a <uart_print_voltage>:
39a: ef 92 push r14
39c: ff 92 push r15
39e: 0f 93 push r16
3a0: 1f 93 push r17
3a2: cf 93 push r28
3a4: df 93 push r29
3a6: 8c 01 movw r16, r24
3a8: 60 e1 ldi r22, 0x10 ; 16
3aa: 77 e2 ldi r23, 0x27 ; 39
3ac: 9e d1 rcall .+828 ; 0x6ea <__udivmodhi4>
3ae: 7c 01 movw r14, r24
3b0: 86 2f mov r24, r22
3b2: 80 5d subi r24, 0xD0 ; 208
3b4: ec d0 rcall .+472 ; 0x58e <uart_putc>
3b6: c8 ee ldi r28, 0xE8 ; 232
3b8: d3 e0 ldi r29, 0x03 ; 3
3ba: c7 01 movw r24, r14
3bc: be 01 movw r22, r28
3be: 95 d1 rcall .+810 ; 0x6ea <__udivmodhi4>
3c0: 86 2f mov r24, r22
3c2: 80 5d subi r24, 0xD0 ; 208
3c4: e4 d0 rcall .+456 ; 0x58e <uart_putc>
3c6: 8e e2 ldi r24, 0x2E ; 46
3c8: e2 d0 rcall .+452 ; 0x58e <uart_putc>
3ca: c8 01 movw r24, r16
3cc: be 01 movw r22, r28
3ce: 8d d1 rcall .+794 ; 0x6ea <__udivmodhi4>
3d0: 64 e6 ldi r22, 0x64 ; 100
3d2: 70 e0 ldi r23, 0x00 ; 0
3d4: 8a d1 rcall .+788 ; 0x6ea <__udivmodhi4>
3d6: 86 2f mov r24, r22
3d8: 80 5d subi r24, 0xD0 ; 208
3da: df 91 pop r29
3dc: cf 91 pop r28
3de: 1f 91 pop r17
3e0: 0f 91 pop r16
3e2: ff 90 pop r15
3e4: ef 90 pop r14
3e6: d3 c0 rjmp .+422 ; 0x58e <uart_putc>
000003e8 <uart_print_uint8>:
3e8: 0f 93 push r16
3ea: 1f 93 push r17
3ec: cf 93 push r28
3ee: df 93 push r29
3f0: 1f 92 push r1
3f2: cd b7 in r28, 0x3d ; 61
3f4: de b7 in r29, 0x3e ; 62
3f6: 08 2f mov r16, r24
3f8: 64 e6 ldi r22, 0x64 ; 100
3fa: 6b d1 rcall .+726 ; 0x6d2 <__udivmodqi4>
3fc: 80 5d subi r24, 0xD0 ; 208
3fe: 99 83 std Y+1, r25 ; 0x01
400: c6 d0 rcall .+396 ; 0x58e <uart_putc>
402: 1a e0 ldi r17, 0x0A ; 10
404: 99 81 ldd r25, Y+1 ; 0x01
406: 89 2f mov r24, r25
408: 61 2f mov r22, r17
40a: 63 d1 rcall .+710 ; 0x6d2 <__udivmodqi4>
40c: 80 5d subi r24, 0xD0 ; 208
40e: bf d0 rcall .+382 ; 0x58e <uart_putc>
410: 80 2f mov r24, r16
412: 61 2f mov r22, r17
414: 5e d1 rcall .+700 ; 0x6d2 <__udivmodqi4>
416: 89 2f mov r24, r25
418: 80 5d subi r24, 0xD0 ; 208
41a: 0f 90 pop r0
41c: df 91 pop r29
41e: cf 91 pop r28
420: 1f 91 pop r17
422: 0f 91 pop r16
424: b4 c0 rjmp .+360 ; 0x58e <uart_putc>
00000426 <uart_print_uint16>:
426: ef 92 push r14
428: ff 92 push r15
42a: 0f 93 push r16
42c: 1f 93 push r17
42e: cf 93 push r28
430: df 93 push r29
432: ec 01 movw r28, r24
434: 60 e1 ldi r22, 0x10 ; 16
436: 77 e2 ldi r23, 0x27 ; 39
438: 58 d1 rcall .+688 ; 0x6ea <__udivmodhi4>
43a: 7c 01 movw r14, r24
43c: 86 2f mov r24, r22
43e: 80 5d subi r24, 0xD0 ; 208
440: a6 d0 rcall .+332 ; 0x58e <uart_putc>
442: 08 ee ldi r16, 0xE8 ; 232
444: 13 e0 ldi r17, 0x03 ; 3
446: c7 01 movw r24, r14
448: b8 01 movw r22, r16
44a: 4f d1 rcall .+670 ; 0x6ea <__udivmodhi4>
44c: 86 2f mov r24, r22
44e: 80 5d subi r24, 0xD0 ; 208
450: 9e d0 rcall .+316 ; 0x58e <uart_putc>
452: ce 01 movw r24, r28
454: b8 01 movw r22, r16
456: 49 d1 rcall .+658 ; 0x6ea <__udivmodhi4>
458: 04 e6 ldi r16, 0x64 ; 100
45a: 10 e0 ldi r17, 0x00 ; 0
45c: b8 01 movw r22, r16
45e: 45 d1 rcall .+650 ; 0x6ea <__udivmodhi4>
460: 86 2f mov r24, r22
462: 80 5d subi r24, 0xD0 ; 208
464: 94 d0 rcall .+296 ; 0x58e <uart_putc>
466: ce 01 movw r24, r28
468: b8 01 movw r22, r16
46a: 3f d1 rcall .+638 ; 0x6ea <__udivmodhi4>
46c: 0a e0 ldi r16, 0x0A ; 10
46e: 10 e0 ldi r17, 0x00 ; 0
470: b8 01 movw r22, r16
472: 3b d1 rcall .+630 ; 0x6ea <__udivmodhi4>
474: 86 2f mov r24, r22
476: 80 5d subi r24, 0xD0 ; 208
478: 8a d0 rcall .+276 ; 0x58e <uart_putc>
47a: ce 01 movw r24, r28
47c: b8 01 movw r22, r16
47e: 35 d1 rcall .+618 ; 0x6ea <__udivmodhi4>
480: 80 5d subi r24, 0xD0 ; 208
482: df 91 pop r29
484: cf 91 pop r28
486: 1f 91 pop r17
488: 0f 91 pop r16
48a: ff 90 pop r15
48c: ef 90 pop r14
48e: 7f c0 rjmp .+254 ; 0x58e <uart_putc>
00000490 <__vector_11>:
490: 1f 92 push r1
492: 0f 92 push r0
494: 0f b6 in r0, 0x3f ; 63
496: 0f 92 push r0
498: 11 24 eor r1, r1
49a: 2f 93 push r18
49c: 8f 93 push r24
49e: 9f 93 push r25
4a0: ef 93 push r30
4a2: ff 93 push r31
4a4: 8b b1 in r24, 0x0b ; 11
4a6: 9c b1 in r25, 0x0c ; 12
4a8: 88 71 andi r24, 0x18 ; 24
4aa: e0 91 72 00 lds r30, 0x0072
4ae: ef 5f subi r30, 0xFF ; 255
4b0: ef 71 andi r30, 0x1F ; 31
4b2: 20 91 71 00 lds r18, 0x0071
4b6: e2 17 cp r30, r18
4b8: 39 f0 breq .+14 ; 0x4c8 <__vector_11+0x38>
4ba: e0 93 72 00 sts 0x0072, r30
4be: f0 e0 ldi r31, 0x00 ; 0
4c0: eb 58 subi r30, 0x8B ; 139
4c2: ff 4f sbci r31, 0xFF ; 255
4c4: 90 83 st Z, r25
4c6: 01 c0 rjmp .+2 ; 0x4ca <__vector_11+0x3a>
4c8: 82 e0 ldi r24, 0x02 ; 2
4ca: 90 91 70 00 lds r25, 0x0070
4ce: 98 2b or r25, r24
4d0: 90 93 70 00 sts 0x0070, r25
4d4: ff 91 pop r31
4d6: ef 91 pop r30
4d8: 9f 91 pop r25
4da: 8f 91 pop r24
4dc: 2f 91 pop r18
4de: 0f 90 pop r0
4e0: 0f be out 0x3f, r0 ; 63
4e2: 0f 90 pop r0
4e4: 1f 90 pop r1
4e6: 18 95 reti
000004e8 <__vector_12>:
4e8: 1f 92 push r1
4ea: 0f 92 push r0
4ec: 0f b6 in r0, 0x3f ; 63
4ee: 0f 92 push r0
4f0: 11 24 eor r1, r1
4f2: 8f 93 push r24
4f4: 9f 93 push r25
4f6: ef 93 push r30
4f8: ff 93 push r31
4fa: 90 91 74 00 lds r25, 0x0074
4fe: 80 91 73 00 lds r24, 0x0073
502: 98 17 cp r25, r24
504: 61 f0 breq .+24 ; 0x51e <__vector_12+0x36>
506: e0 91 73 00 lds r30, 0x0073
50a: ef 5f subi r30, 0xFF ; 255
50c: ef 71 andi r30, 0x1F ; 31
50e: e0 93 73 00 sts 0x0073, r30
512: f0 e0 ldi r31, 0x00 ; 0
514: eb 56 subi r30, 0x6B ; 107
516: ff 4f sbci r31, 0xFF ; 255
518: 80 81 ld r24, Z
51a: 8c b9 out 0x0c, r24 ; 12
51c: 01 c0 rjmp .+2 ; 0x520 <__vector_12+0x38>
51e: 55 98 cbi 0x0a, 5 ; 10
520: ff 91 pop r31
522: ef 91 pop r30
524: 9f 91 pop r25
526: 8f 91 pop r24
528: 0f 90 pop r0
52a: 0f be out 0x3f, r0 ; 63
52c: 0f 90 pop r0
52e: 1f 90 pop r1
530: 18 95 reti
00000532 <uart_init>:
532: 10 92 74 00 sts 0x0074, r1
536: 10 92 73 00 sts 0x0073, r1
53a: 10 92 72 00 sts 0x0072, r1
53e: 10 92 71 00 sts 0x0071, r1
542: 97 ff sbrs r25, 7
544: 03 c0 rjmp .+6 ; 0x54c <uart_init+0x1a>
546: 22 e0 ldi r18, 0x02 ; 2
548: 2b b9 out 0x0b, r18 ; 11
54a: 9f 77 andi r25, 0x7F ; 127
54c: 90 bd out 0x20, r25 ; 32
54e: 89 b9 out 0x09, r24 ; 9
550: 88 e9 ldi r24, 0x98 ; 152
552: 8a b9 out 0x0a, r24 ; 10
554: 86 e8 ldi r24, 0x86 ; 134
556: 80 bd out 0x20, r24 ; 32
558: 08 95 ret
0000055a <uart_getc>:
55a: 90 91 72 00 lds r25, 0x0072
55e: 80 91 71 00 lds r24, 0x0071
562: 98 17 cp r25, r24
564: 81 f0 breq .+32 ; 0x586 <uart_getc+0x2c>
566: e0 91 71 00 lds r30, 0x0071
56a: ef 5f subi r30, 0xFF ; 255
56c: ef 71 andi r30, 0x1F ; 31
56e: e0 93 71 00 sts 0x0071, r30
572: f0 e0 ldi r31, 0x00 ; 0
574: eb 58 subi r30, 0x8B ; 139
576: ff 4f sbci r31, 0xFF ; 255
578: 20 81 ld r18, Z
57a: 80 91 70 00 lds r24, 0x0070
57e: 10 92 70 00 sts 0x0070, r1
582: 30 e0 ldi r19, 0x00 ; 0
584: 02 c0 rjmp .+4 ; 0x58a <uart_getc+0x30>
586: 20 e0 ldi r18, 0x00 ; 0
588: 31 e0 ldi r19, 0x01 ; 1
58a: c9 01 movw r24, r18
58c: 08 95 ret
0000058e <uart_putc>:
58e: 90 91 74 00 lds r25, 0x0074
592: 9f 5f subi r25, 0xFF ; 255
594: 9f 71 andi r25, 0x1F ; 31
596: 20 91 73 00 lds r18, 0x0073
59a: 92 17 cp r25, r18
59c: e1 f3 breq .-8 ; 0x596 <uart_putc+0x8>
59e: e9 2f mov r30, r25
5a0: f0 e0 ldi r31, 0x00 ; 0
5a2: eb 56 subi r30, 0x6B ; 107
5a4: ff 4f sbci r31, 0xFF ; 255
5a6: 80 83 st Z, r24
5a8: 90 93 74 00 sts 0x0074, r25
5ac: 55 9a sbi 0x0a, 5 ; 10
5ae: 08 95 ret
000005b0 <uart_puts>:
5b0: cf 93 push r28
5b2: df 93 push r29
5b4: ec 01 movw r28, r24
5b6: 01 c0 rjmp .+2 ; 0x5ba <uart_puts+0xa>
5b8: ea df rcall .-44 ; 0x58e <uart_putc>
5ba: 89 91 ld r24, Y+
5bc: 81 11 cpse r24, r1
5be: fc cf rjmp .-8 ; 0x5b8 <uart_puts+0x8>
5c0: df 91 pop r29
5c2: cf 91 pop r28
5c4: 08 95 ret
000005c6 <uart_puts_p>:
5c6: cf 93 push r28
5c8: df 93 push r29
5ca: ec 01 movw r28, r24
5cc: 01 c0 rjmp .+2 ; 0x5d0 <uart_puts_p+0xa>
5ce: df df rcall .-66 ; 0x58e <uart_putc>
5d0: fe 01 movw r30, r28
5d2: 21 96 adiw r28, 0x01 ; 1
5d4: 84 91 lpm r24, Z+
5d6: 81 11 cpse r24, r1
5d8: fa cf rjmp .-12 ; 0x5ce <uart_puts_p+0x8>
5da: df 91 pop r29
5dc: cf 91 pop r28
5de: 08 95 ret
000005e0 <main>:
5e0: 87 b3 in r24, 0x17 ; 23
5e2: 83 60 ori r24, 0x03 ; 3
5e4: 87 bb out 0x17, r24 ; 23
5e6: 88 b3 in r24, 0x18 ; 24
5e8: 8c 7f andi r24, 0xFC ; 252
5ea: 88 bb out 0x18, r24 ; 24
5ec: 91 de rcall .-734 ; 0x310 <adc_init>
5ee: 8e b5 in r24, 0x2e ; 46
5f0: 8b 60 ori r24, 0x0B ; 11
5f2: 8e bd out 0x2e, r24 ; 46
5f4: 82 ee ldi r24, 0xE2 ; 226
5f6: 94 e0 ldi r25, 0x04 ; 4
5f8: 9b bd out 0x2b, r25 ; 43
5fa: 8a bd out 0x2a, r24 ; 42
5fc: 80 e1 ldi r24, 0x10 ; 16
5fe: 89 bf out 0x39, r24 ; 57
600: 78 94 sei
602: 89 e1 ldi r24, 0x19 ; 25
604: 90 e0 ldi r25, 0x00 ; 0
606: 95 df rcall .-214 ; 0x532 <uart_init>
608: c0 98 cbi 0x18, 0 ; 24
60a: c1 9a sbi 0x18, 1 ; 24
60c: c4 e6 ldi r28, 0x64 ; 100
60e: d0 e0 ldi r29, 0x00 ; 0
610: 80 91 6c 00 lds r24, 0x006C
614: 90 91 6d 00 lds r25, 0x006D
618: 84 36 cpi r24, 0x64 ; 100
61a: 91 05 cpc r25, r1
61c: 30 f0 brcs .+12 ; 0x62a <main+0x4a>
61e: 10 92 6d 00 sts 0x006D, r1
622: 10 92 6c 00 sts 0x006C, r1
626: 42 dd rcall .-1404 ; 0xac <measure>
628: e7 dd rcall .-1074 ; 0x1f8 <handle_over_and_undervoltage>
62a: 97 df rcall .-210 ; 0x55a <uart_getc>
62c: 81 15 cp r24, r1
62e: 21 e0 ldi r18, 0x01 ; 1
630: 92 07 cpc r25, r18
632: 71 f3 breq .-36 ; 0x610 <main+0x30>
634: 99 27 eor r25, r25
636: 81 36 cpi r24, 0x61 ; 97
638: 91 05 cpc r25, r1
63a: 29 f0 breq .+10 ; 0x646 <main+0x66>
63c: 80 37 cpi r24, 0x70 ; 112
63e: 91 05 cpc r25, r1
640: 39 f7 brne .-50 ; 0x610 <main+0x30>
642: 8b dd rcall .-1258 ; 0x15a <pretty_print_all_values>
644: e5 cf rjmp .-54 ; 0x610 <main+0x30>
646: 81 e4 ldi r24, 0x41 ; 65
648: a2 df rcall .-188 ; 0x58e <uart_putc>
64a: 80 91 6a 00 lds r24, 0x006A
64e: 90 91 6b 00 lds r25, 0x006B
652: e9 de rcall .-558 ; 0x426 <uart_print_uint16>
654: 8c e2 ldi r24, 0x2C ; 44
656: 9b df rcall .-202 ; 0x58e <uart_putc>
658: 80 91 66 00 lds r24, 0x0066
65c: 90 91 67 00 lds r25, 0x0067
660: e2 de rcall .-572 ; 0x426 <uart_print_uint16>
662: 8c e2 ldi r24, 0x2C ; 44
664: 94 df rcall .-216 ; 0x58e <uart_putc>
666: 80 e0 ldi r24, 0x00 ; 0
668: 90 e0 ldi r25, 0x00 ; 0
66a: dd de rcall .-582 ; 0x426 <uart_print_uint16>
66c: 8c e2 ldi r24, 0x2C ; 44
66e: 8f df rcall .-226 ; 0x58e <uart_putc>
670: 80 91 66 00 lds r24, 0x0066
674: 90 91 67 00 lds r25, 0x0067
678: be 01 movw r22, r28
67a: 4b d0 rcall .+150 ; 0x712 <__divmodhi4>
67c: 9b 01 movw r18, r22
67e: 80 91 6a 00 lds r24, 0x006A
682: 90 91 6b 00 lds r25, 0x006B
686: be 01 movw r22, r28
688: 30 d0 rcall .+96 ; 0x6ea <__udivmodhi4>
68a: 26 9f mul r18, r22
68c: c0 01 movw r24, r0
68e: 27 9f mul r18, r23
690: 90 0d add r25, r0
692: 36 9f mul r19, r22
694: 90 0d add r25, r0
696: 11 24 eor r1, r1
698: be 01 movw r22, r28
69a: 27 d0 rcall .+78 ; 0x6ea <__udivmodhi4>
69c: cb 01 movw r24, r22
69e: c3 de rcall .-634 ; 0x426 <uart_print_uint16>
6a0: 8c e2 ldi r24, 0x2C ; 44
6a2: 75 df rcall .-278 ; 0x58e <uart_putc>
6a4: 80 e0 ldi r24, 0x00 ; 0
6a6: 90 e0 ldi r25, 0x00 ; 0
6a8: be de rcall .-644 ; 0x426 <uart_print_uint16>
6aa: 8c e2 ldi r24, 0x2C ; 44
6ac: 70 df rcall .-288 ; 0x58e <uart_putc>
6ae: 86 b3 in r24, 0x16 ; 22
6b0: 81 70 andi r24, 0x01 ; 1
6b2: 80 5d subi r24, 0xD0 ; 208
6b4: 6c df rcall .-296 ; 0x58e <uart_putc>
6b6: 8c e2 ldi r24, 0x2C ; 44
6b8: 6a df rcall .-300 ; 0x58e <uart_putc>
6ba: 80 e3 ldi r24, 0x30 ; 48
6bc: 68 df rcall .-304 ; 0x58e <uart_putc>
6be: 8c e2 ldi r24, 0x2C ; 44
6c0: 66 df rcall .-308 ; 0x58e <uart_putc>
6c2: 86 b3 in r24, 0x16 ; 22
6c4: 86 95 lsr r24
6c6: 81 70 andi r24, 0x01 ; 1
6c8: 80 5d subi r24, 0xD0 ; 208
6ca: 61 df rcall .-318 ; 0x58e <uart_putc>
6cc: 82 e4 ldi r24, 0x42 ; 66
6ce: 5f df rcall .-322 ; 0x58e <uart_putc>
6d0: 9f cf rjmp .-194 ; 0x610 <main+0x30>
000006d2 <__udivmodqi4>:
6d2: 99 1b sub r25, r25
6d4: 79 e0 ldi r23, 0x09 ; 9
6d6: 04 c0 rjmp .+8 ; 0x6e0 <__udivmodqi4_ep>
000006d8 <__udivmodqi4_loop>:
6d8: 99 1f adc r25, r25
6da: 96 17 cp r25, r22
6dc: 08 f0 brcs .+2 ; 0x6e0 <__udivmodqi4_ep>
6de: 96 1b sub r25, r22
000006e0 <__udivmodqi4_ep>:
6e0: 88 1f adc r24, r24
6e2: 7a 95 dec r23
6e4: c9 f7 brne .-14 ; 0x6d8 <__udivmodqi4_loop>
6e6: 80 95 com r24
6e8: 08 95 ret
000006ea <__udivmodhi4>:
6ea: aa 1b sub r26, r26
6ec: bb 1b sub r27, r27
6ee: 51 e1 ldi r21, 0x11 ; 17
6f0: 07 c0 rjmp .+14 ; 0x700 <__udivmodhi4_ep>
000006f2 <__udivmodhi4_loop>:
6f2: aa 1f adc r26, r26
6f4: bb 1f adc r27, r27
6f6: a6 17 cp r26, r22
6f8: b7 07 cpc r27, r23
6fa: 10 f0 brcs .+4 ; 0x700 <__udivmodhi4_ep>
6fc: a6 1b sub r26, r22
6fe: b7 0b sbc r27, r23
00000700 <__udivmodhi4_ep>:
700: 88 1f adc r24, r24
702: 99 1f adc r25, r25
704: 5a 95 dec r21
706: a9 f7 brne .-22 ; 0x6f2 <__udivmodhi4_loop>
708: 80 95 com r24
70a: 90 95 com r25
70c: bc 01 movw r22, r24
70e: cd 01 movw r24, r26
710: 08 95 ret
00000712 <__divmodhi4>:
712: 97 fb bst r25, 7
714: 07 2e mov r0, r23
716: 16 f4 brtc .+4 ; 0x71c <__divmodhi4+0xa>
718: 00 94 com r0
71a: 06 d0 rcall .+12 ; 0x728 <__divmodhi4_neg1>
71c: 77 fd sbrc r23, 7
71e: 08 d0 rcall .+16 ; 0x730 <__divmodhi4_neg2>
720: e4 df rcall .-56 ; 0x6ea <__udivmodhi4>
722: 07 fc sbrc r0, 7
724: 05 d0 rcall .+10 ; 0x730 <__divmodhi4_neg2>
726: 3e f4 brtc .+14 ; 0x736 <__divmodhi4_exit>
00000728 <__divmodhi4_neg1>:
728: 90 95 com r25
72a: 81 95 neg r24
72c: 9f 4f sbci r25, 0xFF ; 255
72e: 08 95 ret
00000730 <__divmodhi4_neg2>:
730: 70 95 com r23
732: 61 95 neg r22
734: 7f 4f sbci r23, 0xFF ; 255
00000736 <__divmodhi4_exit>:
736: 08 95 ret
00000738 <_exit>:
738: f8 94 cli
0000073a <__stop_program>:
73a: ff cf rjmp .-2 ; 0x73a <__stop_program>