282 lines
8.7 KiB
Plaintext
282 lines
8.7 KiB
Plaintext
|
|
15cmZahl.elf: file format elf32-avr
|
|
|
|
Sections:
|
|
Idx Name Size VMA LMA File off Algn
|
|
0 .text 000000ec 00000000 00000000 00000094 2**1
|
|
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
|
1 .data 00000010 00800060 000000ec 00000180 2**0
|
|
CONTENTS, ALLOC, LOAD, DATA
|
|
2 .bss 00000002 00800070 00800070 00000190 2**0
|
|
ALLOC
|
|
3 .stab 000006b4 00000000 00000000 00000190 2**2
|
|
CONTENTS, READONLY, DEBUGGING
|
|
4 .stabstr 00000085 00000000 00000000 00000844 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
5 .debug_aranges 00000020 00000000 00000000 000008c9 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
6 .debug_pubnames 00000053 00000000 00000000 000008e9 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
7 .debug_info 000002ec 00000000 00000000 0000093c 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
8 .debug_abbrev 0000018e 00000000 00000000 00000c28 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
9 .debug_line 0000023c 00000000 00000000 00000db6 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
10 .debug_frame 00000050 00000000 00000000 00000ff4 2**2
|
|
CONTENTS, READONLY, DEBUGGING
|
|
11 .debug_str 000000f8 00000000 00000000 00001044 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
12 .debug_loc 0000015f 00000000 00000000 0000113c 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
13 .debug_pubtypes 0000002b 00000000 00000000 0000129b 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
14 .debug_ranges 00000030 00000000 00000000 000012c6 2**0
|
|
CONTENTS, READONLY, DEBUGGING
|
|
|
|
Disassembly of section .text:
|
|
|
|
00000000 <__vectors>:
|
|
0: 12 c0 rjmp .+36 ; 0x26 <__ctors_end>
|
|
2: 2a c0 rjmp .+84 ; 0x58 <__bad_interrupt>
|
|
4: 29 c0 rjmp .+82 ; 0x58 <__bad_interrupt>
|
|
6: 28 c0 rjmp .+80 ; 0x58 <__bad_interrupt>
|
|
8: 27 c0 rjmp .+78 ; 0x58 <__bad_interrupt>
|
|
a: 26 c0 rjmp .+76 ; 0x58 <__bad_interrupt>
|
|
c: 25 c0 rjmp .+74 ; 0x58 <__bad_interrupt>
|
|
e: 24 c0 rjmp .+72 ; 0x58 <__bad_interrupt>
|
|
10: 23 c0 rjmp .+70 ; 0x58 <__bad_interrupt>
|
|
12: 22 c0 rjmp .+68 ; 0x58 <__bad_interrupt>
|
|
14: 21 c0 rjmp .+66 ; 0x58 <__bad_interrupt>
|
|
16: 20 c0 rjmp .+64 ; 0x58 <__bad_interrupt>
|
|
18: 1f c0 rjmp .+62 ; 0x58 <__bad_interrupt>
|
|
1a: 1e c0 rjmp .+60 ; 0x58 <__bad_interrupt>
|
|
1c: 1d c0 rjmp .+58 ; 0x58 <__bad_interrupt>
|
|
1e: 1c c0 rjmp .+56 ; 0x58 <__bad_interrupt>
|
|
20: 1b c0 rjmp .+54 ; 0x58 <__bad_interrupt>
|
|
22: 1a c0 rjmp .+52 ; 0x58 <__bad_interrupt>
|
|
24: 19 c0 rjmp .+50 ; 0x58 <__bad_interrupt>
|
|
|
|
00000026 <__ctors_end>:
|
|
26: 11 24 eor r1, r1
|
|
28: 1f be out 0x3f, r1 ; 63
|
|
2a: cf ed ldi r28, 0xDF ; 223
|
|
2c: cd bf out 0x3d, r28 ; 61
|
|
|
|
0000002e <__do_copy_data>:
|
|
2e: 10 e0 ldi r17, 0x00 ; 0
|
|
30: a0 e6 ldi r26, 0x60 ; 96
|
|
32: b0 e0 ldi r27, 0x00 ; 0
|
|
34: ec ee ldi r30, 0xEC ; 236
|
|
36: f0 e0 ldi r31, 0x00 ; 0
|
|
38: 02 c0 rjmp .+4 ; 0x3e <__SP_H__>
|
|
3a: 05 90 lpm r0, Z+
|
|
3c: 0d 92 st X+, r0
|
|
3e: a0 37 cpi r26, 0x70 ; 112
|
|
40: b1 07 cpc r27, r17
|
|
42: d9 f7 brne .-10 ; 0x3a <__CCP__+0x6>
|
|
|
|
00000044 <__do_clear_bss>:
|
|
44: 10 e0 ldi r17, 0x00 ; 0
|
|
46: a0 e7 ldi r26, 0x70 ; 112
|
|
48: b0 e0 ldi r27, 0x00 ; 0
|
|
4a: 01 c0 rjmp .+2 ; 0x4e <.do_clear_bss_start>
|
|
|
|
0000004c <.do_clear_bss_loop>:
|
|
4c: 1d 92 st X+, r1
|
|
|
|
0000004e <.do_clear_bss_start>:
|
|
4e: a2 37 cpi r26, 0x72 ; 114
|
|
50: b1 07 cpc r27, r17
|
|
52: e1 f7 brne .-8 ; 0x4c <.do_clear_bss_loop>
|
|
54: 3d d0 rcall .+122 ; 0xd0 <main>
|
|
56: 48 c0 rjmp .+144 ; 0xe8 <_exit>
|
|
|
|
00000058 <__bad_interrupt>:
|
|
58: d3 cf rjmp .-90 ; 0x0 <__vectors>
|
|
|
|
0000005a <show>:
|
|
volatile uint8_t segs[16] = {S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,Sa,Sb,Sc,Sd,Se,Sf};
|
|
volatile uint8_t ind = 0;
|
|
volatile uint8_t dim = 0;
|
|
|
|
void show() {
|
|
uint8_t i = ind;
|
|
5a: e0 91 70 00 lds r30, 0x0070
|
|
uint8_t j = dim;
|
|
5e: 60 91 71 00 lds r22, 0x0071
|
|
62: 44 e1 ldi r20, 0x14 ; 20
|
|
for(uint8_t l=0;l<20;l++) {
|
|
for(uint8_t k=0;k<j;k++) {
|
|
PORTB = segs[i];
|
|
64: f0 e0 ldi r31, 0x00 ; 0
|
|
66: e0 5a subi r30, 0xA0 ; 160
|
|
68: ff 4f sbci r31, 0xFF ; 255
|
|
_delay_us(1);
|
|
}
|
|
for(uint8_t k=0;k<255-j;k++) {
|
|
6a: 8f ef ldi r24, 0xFF ; 255
|
|
6c: 90 e0 ldi r25, 0x00 ; 0
|
|
6e: 86 1b sub r24, r22
|
|
70: 91 09 sbc r25, r1
|
|
72: 18 c0 rjmp .+48 ; 0xa4 <show+0x4a>
|
|
void show() {
|
|
uint8_t i = ind;
|
|
uint8_t j = dim;
|
|
for(uint8_t l=0;l<20;l++) {
|
|
for(uint8_t k=0;k<j;k++) {
|
|
PORTB = segs[i];
|
|
74: 30 81 ld r19, Z
|
|
76: 38 bb out 0x18, r19 ; 24
|
|
#else
|
|
//round up by default
|
|
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
|
#endif
|
|
|
|
__builtin_avr_delay_cycles(__ticks_dc);
|
|
78: 36 e0 ldi r19, 0x06 ; 6
|
|
7a: 3a 95 dec r19
|
|
7c: f1 f7 brne .-4 ; 0x7a <show+0x20>
|
|
7e: 00 c0 rjmp .+0 ; 0x80 <show+0x26>
|
|
|
|
void show() {
|
|
uint8_t i = ind;
|
|
uint8_t j = dim;
|
|
for(uint8_t l=0;l<20;l++) {
|
|
for(uint8_t k=0;k<j;k++) {
|
|
80: 2f 5f subi r18, 0xFF ; 255
|
|
82: 26 17 cp r18, r22
|
|
84: b8 f3 brcs .-18 ; 0x74 <show+0x1a>
|
|
86: 50 e0 ldi r21, 0x00 ; 0
|
|
88: 06 c0 rjmp .+12 ; 0x96 <show+0x3c>
|
|
PORTB = segs[i];
|
|
_delay_us(1);
|
|
}
|
|
for(uint8_t k=0;k<255-j;k++) {
|
|
PORTB = 0;
|
|
8a: 18 ba out 0x18, r1 ; 24
|
|
8c: 26 e0 ldi r18, 0x06 ; 6
|
|
8e: 2a 95 dec r18
|
|
90: f1 f7 brne .-4 ; 0x8e <show+0x34>
|
|
92: 00 c0 rjmp .+0 ; 0x94 <show+0x3a>
|
|
for(uint8_t l=0;l<20;l++) {
|
|
for(uint8_t k=0;k<j;k++) {
|
|
PORTB = segs[i];
|
|
_delay_us(1);
|
|
}
|
|
for(uint8_t k=0;k<255-j;k++) {
|
|
94: 5f 5f subi r21, 0xFF ; 255
|
|
96: 25 2f mov r18, r21
|
|
98: 30 e0 ldi r19, 0x00 ; 0
|
|
9a: 28 17 cp r18, r24
|
|
9c: 39 07 cpc r19, r25
|
|
9e: ac f3 brlt .-22 ; 0x8a <show+0x30>
|
|
a0: 41 50 subi r20, 0x01 ; 1
|
|
volatile uint8_t dim = 0;
|
|
|
|
void show() {
|
|
uint8_t i = ind;
|
|
uint8_t j = dim;
|
|
for(uint8_t l=0;l<20;l++) {
|
|
a2: 11 f0 breq .+4 ; 0xa8 <show+0x4e>
|
|
|
|
volatile uint8_t segs[16] = {S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,Sa,Sb,Sc,Sd,Se,Sf};
|
|
volatile uint8_t ind = 0;
|
|
volatile uint8_t dim = 0;
|
|
|
|
void show() {
|
|
a4: 20 e0 ldi r18, 0x00 ; 0
|
|
a6: ed cf rjmp .-38 ; 0x82 <show+0x28>
|
|
a8: 08 95 ret
|
|
|
|
000000aa <dimup>:
|
|
_delay_us(1);
|
|
}
|
|
}
|
|
}
|
|
|
|
void dimup() {
|
|
aa: 1f 93 push r17
|
|
|
|
for(uint8_t j=0;j<250;j++) {
|
|
ac: 10 e0 ldi r17, 0x00 ; 0
|
|
dim = j;
|
|
ae: 10 93 71 00 sts 0x0071, r17
|
|
show();
|
|
b2: d3 df rcall .-90 ; 0x5a <show>
|
|
}
|
|
}
|
|
|
|
void dimup() {
|
|
|
|
for(uint8_t j=0;j<250;j++) {
|
|
b4: 1f 5f subi r17, 0xFF ; 255
|
|
b6: 1a 3f cpi r17, 0xFA ; 250
|
|
b8: d1 f7 brne .-12 ; 0xae <dimup+0x4>
|
|
dim = j;
|
|
show();
|
|
}
|
|
}
|
|
ba: 1f 91 pop r17
|
|
bc: 08 95 ret
|
|
|
|
000000be <dimdown>:
|
|
|
|
void dimdown() {
|
|
be: 1f 93 push r17
|
|
for(uint8_t i=250;i>0;i--) {
|
|
c0: 1a ef ldi r17, 0xFA ; 250
|
|
dim = i;
|
|
c2: 10 93 71 00 sts 0x0071, r17
|
|
show();
|
|
c6: c9 df rcall .-110 ; 0x5a <show>
|
|
show();
|
|
}
|
|
}
|
|
|
|
void dimdown() {
|
|
for(uint8_t i=250;i>0;i--) {
|
|
c8: 11 50 subi r17, 0x01 ; 1
|
|
ca: d9 f7 brne .-10 ; 0xc2 <dimdown+0x4>
|
|
dim = i;
|
|
show();
|
|
}
|
|
}
|
|
cc: 1f 91 pop r17
|
|
ce: 08 95 ret
|
|
|
|
000000d0 <main>:
|
|
|
|
|
|
int main(void) {
|
|
d0: 1f 93 push r17
|
|
DDRB = 0b01111111;
|
|
d2: 8f e7 ldi r24, 0x7F ; 127
|
|
d4: 87 bb out 0x17, r24 ; 23
|
|
//dim = 1;
|
|
while(1){
|
|
for(uint8_t i=0;i<16;i++) {
|
|
d6: 10 e0 ldi r17, 0x00 ; 0
|
|
ind = i;
|
|
d8: 10 93 70 00 sts 0x0070, r17
|
|
dimup();
|
|
dc: e6 df rcall .-52 ; 0xaa <dimup>
|
|
dimdown();
|
|
de: ef df rcall .-34 ; 0xbe <dimdown>
|
|
|
|
int main(void) {
|
|
DDRB = 0b01111111;
|
|
//dim = 1;
|
|
while(1){
|
|
for(uint8_t i=0;i<16;i++) {
|
|
e0: 1f 5f subi r17, 0xFF ; 255
|
|
e2: 10 31 cpi r17, 0x10 ; 16
|
|
e4: c0 f7 brcc .-16 ; 0xd6 <main+0x6>
|
|
e6: f8 cf rjmp .-16 ; 0xd8 <main+0x8>
|
|
|
|
000000e8 <_exit>:
|
|
e8: f8 94 cli
|
|
|
|
000000ea <__stop_program>:
|
|
ea: ff cf rjmp .-2 ; 0xea <__stop_program>
|