Added mario
This commit is contained in:
Binary file not shown.
+544
-64
@@ -3,29 +3,31 @@ MIC-Week3.elf: file format elf32-avr
|
||||
|
||||
Sections:
|
||||
Idx Name Size VMA LMA File off Algn
|
||||
0 .data 00000000 00800100 00800100 00000116 2**0
|
||||
0 .data 00000500 00800100 0000039e 00000432 2**0
|
||||
CONTENTS, ALLOC, LOAD, DATA
|
||||
1 .text 000000c2 00000000 00000000 00000054 2**1
|
||||
1 .text 0000039e 00000000 00000000 00000094 2**1
|
||||
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
||||
2 .comment 00000030 00000000 00000000 00000116 2**0
|
||||
2 .bss 00000008 00800600 00800600 00000932 2**0
|
||||
ALLOC
|
||||
3 .comment 00000030 00000000 00000000 00000932 2**0
|
||||
CONTENTS, READONLY
|
||||
3 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 00000148 2**2
|
||||
4 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 00000964 2**2
|
||||
CONTENTS, READONLY
|
||||
4 .debug_aranges 00000030 00000000 00000000 00000184 2**0
|
||||
5 .debug_aranges 00000098 00000000 00000000 000009a0 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
5 .debug_info 0000040a 00000000 00000000 000001b4 2**0
|
||||
6 .debug_info 00000d95 00000000 00000000 00000a38 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
6 .debug_abbrev 000001fd 00000000 00000000 000005be 2**0
|
||||
7 .debug_abbrev 00000450 00000000 00000000 000017cd 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
7 .debug_line 000001de 00000000 00000000 000007bb 2**0
|
||||
8 .debug_line 000006a6 00000000 00000000 00001c1d 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
8 .debug_frame 00000044 00000000 00000000 0000099c 2**2
|
||||
9 .debug_frame 00000178 00000000 00000000 000022c4 2**2
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
9 .debug_str 000001f2 00000000 00000000 000009e0 2**0
|
||||
10 .debug_str 0000028d 00000000 00000000 0000243c 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
10 .debug_loc 00000027 00000000 00000000 00000bd2 2**0
|
||||
11 .debug_loc 000004aa 00000000 00000000 000026c9 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
11 .debug_ranges 00000020 00000000 00000000 00000bf9 2**0
|
||||
12 .debug_ranges 00000078 00000000 00000000 00002b73 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
|
||||
Disassembly of section .text:
|
||||
@@ -33,73 +35,73 @@ Disassembly of section .text:
|
||||
00000000 <__vectors>:
|
||||
0: 45 c0 rjmp .+138 ; 0x8c <__ctors_end>
|
||||
2: 00 00 nop
|
||||
4: 58 c0 rjmp .+176 ; 0xb6 <__bad_interrupt>
|
||||
4: 60 c0 rjmp .+192 ; 0xc6 <__bad_interrupt>
|
||||
6: 00 00 nop
|
||||
8: 56 c0 rjmp .+172 ; 0xb6 <__bad_interrupt>
|
||||
8: 5e c0 rjmp .+188 ; 0xc6 <__bad_interrupt>
|
||||
a: 00 00 nop
|
||||
c: 54 c0 rjmp .+168 ; 0xb6 <__bad_interrupt>
|
||||
c: 5c c0 rjmp .+184 ; 0xc6 <__bad_interrupt>
|
||||
e: 00 00 nop
|
||||
10: 52 c0 rjmp .+164 ; 0xb6 <__bad_interrupt>
|
||||
10: 5a c0 rjmp .+180 ; 0xc6 <__bad_interrupt>
|
||||
12: 00 00 nop
|
||||
14: 50 c0 rjmp .+160 ; 0xb6 <__bad_interrupt>
|
||||
14: 58 c0 rjmp .+176 ; 0xc6 <__bad_interrupt>
|
||||
16: 00 00 nop
|
||||
18: 4e c0 rjmp .+156 ; 0xb6 <__bad_interrupt>
|
||||
18: 56 c0 rjmp .+172 ; 0xc6 <__bad_interrupt>
|
||||
1a: 00 00 nop
|
||||
1c: 4c c0 rjmp .+152 ; 0xb6 <__bad_interrupt>
|
||||
1c: 54 c0 rjmp .+168 ; 0xc6 <__bad_interrupt>
|
||||
1e: 00 00 nop
|
||||
20: 4a c0 rjmp .+148 ; 0xb6 <__bad_interrupt>
|
||||
20: 52 c0 rjmp .+164 ; 0xc6 <__bad_interrupt>
|
||||
22: 00 00 nop
|
||||
24: 48 c0 rjmp .+144 ; 0xb6 <__bad_interrupt>
|
||||
24: 50 c0 rjmp .+160 ; 0xc6 <__bad_interrupt>
|
||||
26: 00 00 nop
|
||||
28: 46 c0 rjmp .+140 ; 0xb6 <__bad_interrupt>
|
||||
28: b3 c0 rjmp .+358 ; 0x190 <__vector_10>
|
||||
2a: 00 00 nop
|
||||
2c: 44 c0 rjmp .+136 ; 0xb6 <__bad_interrupt>
|
||||
2c: 4c c0 rjmp .+152 ; 0xc6 <__bad_interrupt>
|
||||
2e: 00 00 nop
|
||||
30: 42 c0 rjmp .+132 ; 0xb6 <__bad_interrupt>
|
||||
30: 4a c0 rjmp .+148 ; 0xc6 <__bad_interrupt>
|
||||
32: 00 00 nop
|
||||
34: 40 c0 rjmp .+128 ; 0xb6 <__bad_interrupt>
|
||||
34: 48 c0 rjmp .+144 ; 0xc6 <__bad_interrupt>
|
||||
36: 00 00 nop
|
||||
38: 3e c0 rjmp .+124 ; 0xb6 <__bad_interrupt>
|
||||
38: 46 c0 rjmp .+140 ; 0xc6 <__bad_interrupt>
|
||||
3a: 00 00 nop
|
||||
3c: 3c c0 rjmp .+120 ; 0xb6 <__bad_interrupt>
|
||||
3c: 44 c0 rjmp .+136 ; 0xc6 <__bad_interrupt>
|
||||
3e: 00 00 nop
|
||||
40: 3a c0 rjmp .+116 ; 0xb6 <__bad_interrupt>
|
||||
40: 42 c0 rjmp .+132 ; 0xc6 <__bad_interrupt>
|
||||
42: 00 00 nop
|
||||
44: 38 c0 rjmp .+112 ; 0xb6 <__bad_interrupt>
|
||||
44: 40 c0 rjmp .+128 ; 0xc6 <__bad_interrupt>
|
||||
46: 00 00 nop
|
||||
48: 36 c0 rjmp .+108 ; 0xb6 <__bad_interrupt>
|
||||
48: 3e c0 rjmp .+124 ; 0xc6 <__bad_interrupt>
|
||||
4a: 00 00 nop
|
||||
4c: 34 c0 rjmp .+104 ; 0xb6 <__bad_interrupt>
|
||||
4c: 3c c0 rjmp .+120 ; 0xc6 <__bad_interrupt>
|
||||
4e: 00 00 nop
|
||||
50: 32 c0 rjmp .+100 ; 0xb6 <__bad_interrupt>
|
||||
50: 3a c0 rjmp .+116 ; 0xc6 <__bad_interrupt>
|
||||
52: 00 00 nop
|
||||
54: 30 c0 rjmp .+96 ; 0xb6 <__bad_interrupt>
|
||||
54: 38 c0 rjmp .+112 ; 0xc6 <__bad_interrupt>
|
||||
56: 00 00 nop
|
||||
58: 2e c0 rjmp .+92 ; 0xb6 <__bad_interrupt>
|
||||
58: 36 c0 rjmp .+108 ; 0xc6 <__bad_interrupt>
|
||||
5a: 00 00 nop
|
||||
5c: 2c c0 rjmp .+88 ; 0xb6 <__bad_interrupt>
|
||||
5c: 34 c0 rjmp .+104 ; 0xc6 <__bad_interrupt>
|
||||
5e: 00 00 nop
|
||||
60: 2a c0 rjmp .+84 ; 0xb6 <__bad_interrupt>
|
||||
60: 32 c0 rjmp .+100 ; 0xc6 <__bad_interrupt>
|
||||
62: 00 00 nop
|
||||
64: 28 c0 rjmp .+80 ; 0xb6 <__bad_interrupt>
|
||||
64: 30 c0 rjmp .+96 ; 0xc6 <__bad_interrupt>
|
||||
66: 00 00 nop
|
||||
68: 26 c0 rjmp .+76 ; 0xb6 <__bad_interrupt>
|
||||
68: 2e c0 rjmp .+92 ; 0xc6 <__bad_interrupt>
|
||||
6a: 00 00 nop
|
||||
6c: 24 c0 rjmp .+72 ; 0xb6 <__bad_interrupt>
|
||||
6c: 2c c0 rjmp .+88 ; 0xc6 <__bad_interrupt>
|
||||
6e: 00 00 nop
|
||||
70: 22 c0 rjmp .+68 ; 0xb6 <__bad_interrupt>
|
||||
70: 2a c0 rjmp .+84 ; 0xc6 <__bad_interrupt>
|
||||
72: 00 00 nop
|
||||
74: 20 c0 rjmp .+64 ; 0xb6 <__bad_interrupt>
|
||||
74: 28 c0 rjmp .+80 ; 0xc6 <__bad_interrupt>
|
||||
76: 00 00 nop
|
||||
78: 1e c0 rjmp .+60 ; 0xb6 <__bad_interrupt>
|
||||
78: 26 c0 rjmp .+76 ; 0xc6 <__bad_interrupt>
|
||||
7a: 00 00 nop
|
||||
7c: 1c c0 rjmp .+56 ; 0xb6 <__bad_interrupt>
|
||||
7c: 24 c0 rjmp .+72 ; 0xc6 <__bad_interrupt>
|
||||
7e: 00 00 nop
|
||||
80: 1a c0 rjmp .+52 ; 0xb6 <__bad_interrupt>
|
||||
80: 22 c0 rjmp .+68 ; 0xc6 <__bad_interrupt>
|
||||
82: 00 00 nop
|
||||
84: 18 c0 rjmp .+48 ; 0xb6 <__bad_interrupt>
|
||||
84: 20 c0 rjmp .+64 ; 0xc6 <__bad_interrupt>
|
||||
86: 00 00 nop
|
||||
88: 16 c0 rjmp .+44 ; 0xb6 <__bad_interrupt>
|
||||
88: 1e c0 rjmp .+60 ; 0xc6 <__bad_interrupt>
|
||||
...
|
||||
|
||||
0000008c <__ctors_end>:
|
||||
@@ -111,11 +113,11 @@ Disassembly of section .text:
|
||||
96: cd bf out 0x3d, r28 ; 61
|
||||
|
||||
00000098 <__do_copy_data>:
|
||||
98: 11 e0 ldi r17, 0x01 ; 1
|
||||
98: 16 e0 ldi r17, 0x06 ; 6
|
||||
9a: a0 e0 ldi r26, 0x00 ; 0
|
||||
9c: b1 e0 ldi r27, 0x01 ; 1
|
||||
9e: e2 ec ldi r30, 0xC2 ; 194
|
||||
a0: f0 e0 ldi r31, 0x00 ; 0
|
||||
9e: ee e9 ldi r30, 0x9E ; 158
|
||||
a0: f3 e0 ldi r31, 0x03 ; 3
|
||||
a2: 00 e0 ldi r16, 0x00 ; 0
|
||||
a4: 0b bf out 0x3b, r16 ; 59
|
||||
a6: 02 c0 rjmp .+4 ; 0xac <__do_copy_data+0x14>
|
||||
@@ -124,25 +126,503 @@ Disassembly of section .text:
|
||||
ac: a0 30 cpi r26, 0x00 ; 0
|
||||
ae: b1 07 cpc r27, r17
|
||||
b0: d9 f7 brne .-10 ; 0xa8 <__do_copy_data+0x10>
|
||||
b2: 02 d0 rcall .+4 ; 0xb8 <main>
|
||||
b4: 04 c0 rjmp .+8 ; 0xbe <_exit>
|
||||
|
||||
000000b6 <__bad_interrupt>:
|
||||
b6: a4 cf rjmp .-184 ; 0x0 <__vectors>
|
||||
000000b2 <__do_clear_bss>:
|
||||
b2: 26 e0 ldi r18, 0x06 ; 6
|
||||
b4: a0 e0 ldi r26, 0x00 ; 0
|
||||
b6: b6 e0 ldi r27, 0x06 ; 6
|
||||
b8: 01 c0 rjmp .+2 ; 0xbc <.do_clear_bss_start>
|
||||
|
||||
000000b8 <main>:
|
||||
//opgave1();
|
||||
000000ba <.do_clear_bss_loop>:
|
||||
ba: 1d 92 st X+, r1
|
||||
|
||||
opgave2knop();
|
||||
000000bc <.do_clear_bss_start>:
|
||||
bc: a8 30 cpi r26, 0x08 ; 8
|
||||
be: b2 07 cpc r27, r18
|
||||
c0: e1 f7 brne .-8 ; 0xba <.do_clear_bss_loop>
|
||||
c2: 5b d1 rcall .+694 ; 0x37a <main>
|
||||
c4: 6a c1 rjmp .+724 ; 0x39a <_exit>
|
||||
|
||||
return 1;
|
||||
000000c6 <__bad_interrupt>:
|
||||
c6: 9c cf rjmp .-200 ; 0x0 <__vectors>
|
||||
|
||||
000000c8 <display_char>:
|
||||
}
|
||||
}
|
||||
|
||||
void display_char( unsigned char dat )
|
||||
{
|
||||
PORTC = dat & 0xF0; // hoge nibble
|
||||
c8: 98 2f mov r25, r24
|
||||
ca: 90 7f andi r25, 0xF0 ; 240
|
||||
cc: 95 bb out 0x15, r25 ; 21
|
||||
PORTC = PORTC | 0x0C; // Enable on (EN = 1, RS=1),
|
||||
ce: 95 b3 in r25, 0x15 ; 21
|
||||
d0: 9c 60 ori r25, 0x0C ; 12
|
||||
d2: 95 bb out 0x15, r25 ; 21
|
||||
#else
|
||||
//round up by default
|
||||
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
||||
#endif
|
||||
|
||||
__builtin_avr_delay_cycles(__ticks_dc);
|
||||
d4: ef e9 ldi r30, 0x9F ; 159
|
||||
d6: ff e0 ldi r31, 0x0F ; 15
|
||||
d8: 31 97 sbiw r30, 0x01 ; 1
|
||||
da: f1 f7 brne .-4 ; 0xd8 <display_char+0x10>
|
||||
dc: 00 c0 rjmp .+0 ; 0xde <display_char+0x16>
|
||||
de: 00 00 nop
|
||||
_delay_ms(2); // wait 1 ms
|
||||
PORTC = 0x04; // Enable off (EN = 0, RS = 1)
|
||||
e0: 94 e0 ldi r25, 0x04 ; 4
|
||||
e2: 95 bb out 0x15, r25 ; 21
|
||||
e4: ef e9 ldi r30, 0x9F ; 159
|
||||
e6: ff e0 ldi r31, 0x0F ; 15
|
||||
e8: 31 97 sbiw r30, 0x01 ; 1
|
||||
ea: f1 f7 brne .-4 ; 0xe8 <display_char+0x20>
|
||||
ec: 00 c0 rjmp .+0 ; 0xee <display_char+0x26>
|
||||
ee: 00 00 nop
|
||||
|
||||
_delay_ms(2); // wait 1 ms
|
||||
|
||||
PORTC = (dat & 0x0F) << 4; // lage nibble
|
||||
f0: f0 e1 ldi r31, 0x10 ; 16
|
||||
f2: 8f 9f mul r24, r31
|
||||
f4: c0 01 movw r24, r0
|
||||
f6: 11 24 eor r1, r1
|
||||
f8: 85 bb out 0x15, r24 ; 21
|
||||
PORTC = PORTC | 0x0C; // Enable on (RS=1),
|
||||
fa: 85 b3 in r24, 0x15 ; 21
|
||||
fc: 8c 60 ori r24, 0x0C ; 12
|
||||
fe: 85 bb out 0x15, r24 ; 21
|
||||
100: 8f e9 ldi r24, 0x9F ; 159
|
||||
102: 9f e0 ldi r25, 0x0F ; 15
|
||||
104: 01 97 sbiw r24, 0x01 ; 1
|
||||
106: f1 f7 brne .-4 ; 0x104 <display_char+0x3c>
|
||||
108: 00 c0 rjmp .+0 ; 0x10a <display_char+0x42>
|
||||
10a: 00 00 nop
|
||||
// start (EN=1)
|
||||
_delay_ms(2); // wait 1 ms
|
||||
PORTC = 0x00; // stop
|
||||
10c: 15 ba out 0x15, r1 ; 21
|
||||
10e: 08 95 ret
|
||||
|
||||
00000110 <lcd_command>:
|
||||
// (EN=0 RS=0)
|
||||
}
|
||||
|
||||
void lcd_command ( unsigned char dat )
|
||||
{
|
||||
PORTC = dat & 0xF0; // hoge nibble
|
||||
110: 98 2f mov r25, r24
|
||||
112: 90 7f andi r25, 0xF0 ; 240
|
||||
114: 95 bb out 0x15, r25 ; 21
|
||||
PORTC = PORTC | 0x08; // data (RS=0),
|
||||
116: ab 9a sbi 0x15, 3 ; 21
|
||||
118: ef e9 ldi r30, 0x9F ; 159
|
||||
11a: ff e0 ldi r31, 0x0F ; 15
|
||||
11c: 31 97 sbiw r30, 0x01 ; 1
|
||||
11e: f1 f7 brne .-4 ; 0x11c <lcd_command+0xc>
|
||||
120: 00 c0 rjmp .+0 ; 0x122 <lcd_command+0x12>
|
||||
122: 00 00 nop
|
||||
// start (EN=1)
|
||||
_delay_ms(2); // wait 1 ms
|
||||
PORTC = 0x04; // stop (EN = 0)
|
||||
124: 94 e0 ldi r25, 0x04 ; 4
|
||||
126: 95 bb out 0x15, r25 ; 21
|
||||
128: ef e9 ldi r30, 0x9F ; 159
|
||||
12a: ff e0 ldi r31, 0x0F ; 15
|
||||
12c: 31 97 sbiw r30, 0x01 ; 1
|
||||
12e: f1 f7 brne .-4 ; 0x12c <lcd_command+0x1c>
|
||||
130: 00 c0 rjmp .+0 ; 0x132 <lcd_command+0x22>
|
||||
132: 00 00 nop
|
||||
|
||||
_delay_ms(2); // wait 1 ms
|
||||
|
||||
PORTC = (dat & 0x0F) << 4; // lage nibble
|
||||
134: f0 e1 ldi r31, 0x10 ; 16
|
||||
136: 8f 9f mul r24, r31
|
||||
138: c0 01 movw r24, r0
|
||||
13a: 11 24 eor r1, r1
|
||||
13c: 85 bb out 0x15, r24 ; 21
|
||||
PORTC = PORTC | 0x08; // data (RS=0),
|
||||
13e: ab 9a sbi 0x15, 3 ; 21
|
||||
140: 8f e9 ldi r24, 0x9F ; 159
|
||||
142: 9f e0 ldi r25, 0x0F ; 15
|
||||
144: 01 97 sbiw r24, 0x01 ; 1
|
||||
146: f1 f7 brne .-4 ; 0x144 <lcd_command+0x34>
|
||||
148: 00 c0 rjmp .+0 ; 0x14a <lcd_command+0x3a>
|
||||
14a: 00 00 nop
|
||||
// start (EN=1)
|
||||
_delay_ms(2); // wait 1 ms
|
||||
PORTC = 0x00; // stop
|
||||
14c: 15 ba out 0x15, r1 ; 21
|
||||
14e: 08 95 ret
|
||||
|
||||
00000150 <display_text>:
|
||||
|
||||
_delay_ms(100);
|
||||
}
|
||||
|
||||
void display_text( int line, char *text )
|
||||
{
|
||||
150: cf 93 push r28
|
||||
152: df 93 push r29
|
||||
154: eb 01 movw r28, r22
|
||||
// eerst de eerste 8 karakters = regel 1
|
||||
|
||||
if(line)
|
||||
156: 89 2b or r24, r25
|
||||
158: 19 f0 breq .+6 ; 0x160 <display_text+0x10>
|
||||
{
|
||||
// eerste pos regel 1
|
||||
lcd_command(0xC0);
|
||||
15a: 80 ec ldi r24, 0xC0 ; 192
|
||||
15c: d9 df rcall .-78 ; 0x110 <lcd_command>
|
||||
15e: 02 c0 rjmp .+4 ; 0x164 <display_text+0x14>
|
||||
}
|
||||
else
|
||||
{
|
||||
// regel 0
|
||||
lcd_command(0x80);
|
||||
160: 80 e8 ldi r24, 0x80 ; 128
|
||||
162: d6 df rcall .-84 ; 0x110 <lcd_command>
|
||||
}
|
||||
|
||||
int count = 0;
|
||||
|
||||
while (text[count] != '\0') {
|
||||
164: 88 81 ld r24, Y
|
||||
166: 88 23 and r24, r24
|
||||
168: 59 f0 breq .+22 ; 0x180 <display_text+0x30>
|
||||
16a: 21 96 adiw r28, 0x01 ; 1
|
||||
display_char( text[count] );
|
||||
16c: ad df rcall .-166 ; 0xc8 <display_char>
|
||||
16e: 8f e9 ldi r24, 0x9F ; 159
|
||||
170: 9f e0 ldi r25, 0x0F ; 15
|
||||
172: 01 97 sbiw r24, 0x01 ; 1
|
||||
174: f1 f7 brne .-4 ; 0x172 <display_text+0x22>
|
||||
176: 00 c0 rjmp .+0 ; 0x178 <display_text+0x28>
|
||||
178: 00 00 nop
|
||||
lcd_command(0x80);
|
||||
}
|
||||
|
||||
int count = 0;
|
||||
|
||||
while (text[count] != '\0') {
|
||||
17a: 89 91 ld r24, Y+
|
||||
17c: 81 11 cpse r24, r1
|
||||
17e: f6 cf rjmp .-20 ; 0x16c <display_text+0x1c>
|
||||
display_char( text[count] );
|
||||
count++;
|
||||
|
||||
_delay_ms(2);
|
||||
}
|
||||
}
|
||||
b8: 81 e0 ldi r24, 0x01 ; 1
|
||||
ba: 90 e0 ldi r25, 0x00 ; 0
|
||||
bc: 08 95 ret
|
||||
180: df 91 pop r29
|
||||
182: cf 91 pop r28
|
||||
184: 08 95 ret
|
||||
|
||||
000000be <_exit>:
|
||||
be: f8 94 cli
|
||||
00000186 <clear_display>:
|
||||
|
||||
000000c0 <__stop_program>:
|
||||
c0: ff cf rjmp .-2 ; 0xc0 <__stop_program>
|
||||
void clear_display()
|
||||
{
|
||||
lcd_command(0b00000001);
|
||||
186: 81 e0 ldi r24, 0x01 ; 1
|
||||
188: c3 df rcall .-122 ; 0x110 <lcd_command>
|
||||
lcd_command(0b10000000);
|
||||
18a: 80 e8 ldi r24, 0x80 ; 128
|
||||
18c: c1 cf rjmp .-126 ; 0x110 <lcd_command>
|
||||
18e: 08 95 ret
|
||||
|
||||
00000190 <__vector_10>:
|
||||
190: 1f 92 push r1
|
||||
192: 0f 92 push r0
|
||||
194: 0f b6 in r0, 0x3f ; 63
|
||||
196: 0f 92 push r0
|
||||
198: 11 24 eor r1, r1
|
||||
19a: 0b b6 in r0, 0x3b ; 59
|
||||
19c: 0f 92 push r0
|
||||
19e: 2f 93 push r18
|
||||
1a0: 3f 93 push r19
|
||||
1a2: 4f 93 push r20
|
||||
1a4: 5f 93 push r21
|
||||
1a6: 6f 93 push r22
|
||||
1a8: 7f 93 push r23
|
||||
1aa: 8f 93 push r24
|
||||
1ac: 9f 93 push r25
|
||||
1ae: af 93 push r26
|
||||
1b0: bf 93 push r27
|
||||
1b2: ef 93 push r30
|
||||
1b4: ff 93 push r31
|
||||
1b6: 80 91 06 06 lds r24, 0x0606
|
||||
1ba: 90 91 07 06 lds r25, 0x0607
|
||||
1be: 82 30 cpi r24, 0x02 ; 2
|
||||
1c0: 91 05 cpc r25, r1
|
||||
1c2: e9 f4 brne .+58 ; 0x1fe <__vector_10+0x6e>
|
||||
1c4: 14 bc out 0x24, r1 ; 36
|
||||
1c6: 8f e0 ldi r24, 0x0F ; 15
|
||||
1c8: 82 bb out 0x12, r24 ; 18
|
||||
1ca: dd df rcall .-70 ; 0x186 <clear_display>
|
||||
1cc: 2f ef ldi r18, 0xFF ; 255
|
||||
1ce: 80 e7 ldi r24, 0x70 ; 112
|
||||
1d0: 92 e0 ldi r25, 0x02 ; 2
|
||||
1d2: 21 50 subi r18, 0x01 ; 1
|
||||
1d4: 80 40 sbci r24, 0x00 ; 0
|
||||
1d6: 90 40 sbci r25, 0x00 ; 0
|
||||
1d8: e1 f7 brne .-8 ; 0x1d2 <__vector_10+0x42>
|
||||
1da: 00 c0 rjmp .+0 ; 0x1dc <__vector_10+0x4c>
|
||||
1dc: 00 00 nop
|
||||
1de: 6a ee ldi r22, 0xEA ; 234
|
||||
1e0: 75 e0 ldi r23, 0x05 ; 5
|
||||
1e2: 81 e0 ldi r24, 0x01 ; 1
|
||||
1e4: 90 e0 ldi r25, 0x00 ; 0
|
||||
1e6: b4 df rcall .-152 ; 0x150 <display_text>
|
||||
1e8: 2f ef ldi r18, 0xFF ; 255
|
||||
1ea: 84 e3 ldi r24, 0x34 ; 52
|
||||
1ec: 9c e0 ldi r25, 0x0C ; 12
|
||||
1ee: 21 50 subi r18, 0x01 ; 1
|
||||
1f0: 80 40 sbci r24, 0x00 ; 0
|
||||
1f2: 90 40 sbci r25, 0x00 ; 0
|
||||
1f4: e1 f7 brne .-8 ; 0x1ee <__vector_10+0x5e>
|
||||
1f6: 00 c0 rjmp .+0 ; 0x1f8 <__vector_10+0x68>
|
||||
1f8: 00 00 nop
|
||||
1fa: 12 ba out 0x12, r1 ; 18
|
||||
1fc: 4c c0 rjmp .+152 ; 0x296 <__vector_10+0x106>
|
||||
1fe: 83 30 cpi r24, 0x03 ; 3
|
||||
200: 91 05 cpc r25, r1
|
||||
202: d1 f4 brne .+52 ; 0x238 <__vector_10+0xa8>
|
||||
204: 92 b3 in r25, 0x12 ; 18
|
||||
206: 81 e0 ldi r24, 0x01 ; 1
|
||||
208: 89 27 eor r24, r25
|
||||
20a: 82 bb out 0x12, r24 ; 18
|
||||
20c: 80 91 04 06 lds r24, 0x0604
|
||||
210: 90 91 05 06 lds r25, 0x0605
|
||||
214: 89 2b or r24, r25
|
||||
216: 39 f0 breq .+14 ; 0x226 <__vector_10+0x96>
|
||||
218: 8a e8 ldi r24, 0x8A ; 138
|
||||
21a: 84 bd out 0x24, r24 ; 36
|
||||
21c: 10 92 05 06 sts 0x0605, r1
|
||||
220: 10 92 04 06 sts 0x0604, r1
|
||||
224: 38 c0 rjmp .+112 ; 0x296 <__vector_10+0x106>
|
||||
226: 8c e3 ldi r24, 0x3C ; 60
|
||||
228: 84 bd out 0x24, r24 ; 36
|
||||
22a: 81 e0 ldi r24, 0x01 ; 1
|
||||
22c: 90 e0 ldi r25, 0x00 ; 0
|
||||
22e: 90 93 05 06 sts 0x0605, r25
|
||||
232: 80 93 04 06 sts 0x0604, r24
|
||||
236: 2f c0 rjmp .+94 ; 0x296 <__vector_10+0x106>
|
||||
238: 04 97 sbiw r24, 0x04 ; 4
|
||||
23a: 69 f5 brne .+90 ; 0x296 <__vector_10+0x106>
|
||||
23c: e0 91 00 06 lds r30, 0x0600
|
||||
240: f0 91 01 06 lds r31, 0x0601
|
||||
244: ee 0f add r30, r30
|
||||
246: ff 1f adc r31, r31
|
||||
248: ee 0f add r30, r30
|
||||
24a: ff 1f adc r31, r31
|
||||
24c: e0 50 subi r30, 0x00 ; 0
|
||||
24e: ff 4f sbci r31, 0xFF ; 255
|
||||
250: 80 81 ld r24, Z
|
||||
252: 91 81 ldd r25, Z+1 ; 0x01
|
||||
254: 89 2b or r24, r25
|
||||
256: 21 f0 breq .+8 ; 0x260 <__vector_10+0xd0>
|
||||
258: 92 b3 in r25, 0x12 ; 18
|
||||
25a: 81 e0 ldi r24, 0x01 ; 1
|
||||
25c: 89 27 eor r24, r25
|
||||
25e: 82 bb out 0x12, r24 ; 18
|
||||
260: e0 91 00 06 lds r30, 0x0600
|
||||
264: f0 91 01 06 lds r31, 0x0601
|
||||
268: ee 0f add r30, r30
|
||||
26a: ff 1f adc r31, r31
|
||||
26c: ee 0f add r30, r30
|
||||
26e: ff 1f adc r31, r31
|
||||
270: e0 50 subi r30, 0x00 ; 0
|
||||
272: ff 4f sbci r31, 0xFF ; 255
|
||||
274: 40 81 ld r20, Z
|
||||
276: 51 81 ldd r21, Z+1 ; 0x01
|
||||
278: 9a 01 movw r18, r20
|
||||
27a: a3 e9 ldi r26, 0x93 ; 147
|
||||
27c: b4 e2 ldi r27, 0x24 ; 36
|
||||
27e: 7e d0 rcall .+252 ; 0x37c <__umulhisi3>
|
||||
280: 48 1b sub r20, r24
|
||||
282: 59 0b sbc r21, r25
|
||||
284: 56 95 lsr r21
|
||||
286: 47 95 ror r20
|
||||
288: 84 0f add r24, r20
|
||||
28a: 95 1f adc r25, r21
|
||||
28c: 96 95 lsr r25
|
||||
28e: 87 95 ror r24
|
||||
290: 96 95 lsr r25
|
||||
292: 87 95 ror r24
|
||||
294: 84 bd out 0x24, r24 ; 36
|
||||
296: ff 91 pop r31
|
||||
298: ef 91 pop r30
|
||||
29a: bf 91 pop r27
|
||||
29c: af 91 pop r26
|
||||
29e: 9f 91 pop r25
|
||||
2a0: 8f 91 pop r24
|
||||
2a2: 7f 91 pop r23
|
||||
2a4: 6f 91 pop r22
|
||||
2a6: 5f 91 pop r21
|
||||
2a8: 4f 91 pop r20
|
||||
2aa: 3f 91 pop r19
|
||||
2ac: 2f 91 pop r18
|
||||
2ae: 0f 90 pop r0
|
||||
2b0: 0b be out 0x3b, r0 ; 59
|
||||
2b2: 0f 90 pop r0
|
||||
2b4: 0f be out 0x3f, r0 ; 63
|
||||
2b6: 0f 90 pop r0
|
||||
2b8: 1f 90 pop r1
|
||||
2ba: 18 95 reti
|
||||
|
||||
000002bc <opgaveextra>:
|
||||
}
|
||||
}
|
||||
|
||||
void opgaveextra()
|
||||
{
|
||||
opgave = 4;
|
||||
2bc: 84 e0 ldi r24, 0x04 ; 4
|
||||
2be: 90 e0 ldi r25, 0x00 ; 0
|
||||
2c0: 90 93 07 06 sts 0x0607, r25
|
||||
2c4: 80 93 06 06 sts 0x0606, r24
|
||||
count = 0;
|
||||
2c8: 10 92 03 06 sts 0x0603, r1
|
||||
2cc: 10 92 02 06 sts 0x0602, r1
|
||||
current = 0;
|
||||
2d0: 10 92 01 06 sts 0x0601, r1
|
||||
2d4: 10 92 00 06 sts 0x0600, r1
|
||||
|
||||
DDRD = 0xFF;
|
||||
2d8: 8f ef ldi r24, 0xFF ; 255
|
||||
2da: 81 bb out 0x11, r24 ; 17
|
||||
DDRB = 0xFF;
|
||||
2dc: 87 bb out 0x17, r24 ; 23
|
||||
|
||||
PORTB = 0x01110000;
|
||||
2de: 18 ba out 0x18, r1 ; 24
|
||||
2e0: 2f ef ldi r18, 0xFF ; 255
|
||||
2e2: 84 e3 ldi r24, 0x34 ; 52
|
||||
2e4: 9c e0 ldi r25, 0x0C ; 12
|
||||
2e6: 21 50 subi r18, 0x01 ; 1
|
||||
2e8: 80 40 sbci r24, 0x00 ; 0
|
||||
2ea: 90 40 sbci r25, 0x00 ; 0
|
||||
2ec: e1 f7 brne .-8 ; 0x2e6 <opgaveextra+0x2a>
|
||||
2ee: 00 c0 rjmp .+0 ; 0x2f0 <opgaveextra+0x34>
|
||||
2f0: 00 00 nop
|
||||
|
||||
_delay_ms(500);
|
||||
|
||||
PORTB = 0;
|
||||
2f2: 18 ba out 0x18, r1 ; 24
|
||||
|
||||
TCNT2 = 0;
|
||||
2f4: 14 bc out 0x24, r1 ; 36
|
||||
TCCR2 |= 0x03;
|
||||
2f6: 85 b5 in r24, 0x25 ; 37
|
||||
2f8: 83 60 ori r24, 0x03 ; 3
|
||||
2fa: 85 bd out 0x25, r24 ; 37
|
||||
TIMSK |= (1<<6);
|
||||
2fc: 87 b7 in r24, 0x37 ; 55
|
||||
2fe: 80 64 ori r24, 0x40 ; 64
|
||||
300: 87 bf out 0x37, r24 ; 55
|
||||
sei();
|
||||
302: 78 94 sei
|
||||
|
||||
while(1)
|
||||
{
|
||||
PORTB = 0x10000000;
|
||||
304: 18 ba out 0x18, r1 ; 24
|
||||
|
||||
if(count > ((mario[current].delay / 10)*8))
|
||||
306: 40 91 00 06 lds r20, 0x0600
|
||||
30a: 50 91 01 06 lds r21, 0x0601
|
||||
30e: fa 01 movw r30, r20
|
||||
310: ee 0f add r30, r30
|
||||
312: ff 1f adc r31, r31
|
||||
314: ee 0f add r30, r30
|
||||
316: ff 1f adc r31, r31
|
||||
318: e0 50 subi r30, 0x00 ; 0
|
||||
31a: ff 4f sbci r31, 0xFF ; 255
|
||||
31c: 22 81 ldd r18, Z+2 ; 0x02
|
||||
31e: 33 81 ldd r19, Z+3 ; 0x03
|
||||
320: ad ec ldi r26, 0xCD ; 205
|
||||
322: bc ec ldi r27, 0xCC ; 204
|
||||
324: 2b d0 rcall .+86 ; 0x37c <__umulhisi3>
|
||||
326: 88 7f andi r24, 0xF8 ; 248
|
||||
328: 20 91 02 06 lds r18, 0x0602
|
||||
32c: 30 91 03 06 lds r19, 0x0603
|
||||
330: 82 17 cp r24, r18
|
||||
332: 93 07 cpc r25, r19
|
||||
334: 88 f4 brcc .+34 ; 0x358 <opgaveextra+0x9c>
|
||||
{
|
||||
current++;
|
||||
336: 4f 5f subi r20, 0xFF ; 255
|
||||
338: 5f 4f sbci r21, 0xFF ; 255
|
||||
33a: 50 93 01 06 sts 0x0601, r21
|
||||
33e: 40 93 00 06 sts 0x0600, r20
|
||||
|
||||
count = 0;
|
||||
342: 10 92 03 06 sts 0x0603, r1
|
||||
346: 10 92 02 06 sts 0x0602, r1
|
||||
|
||||
if(current >= NELEMS(song))
|
||||
34a: 48 31 cpi r20, 0x18 ; 24
|
||||
34c: 51 05 cpc r21, r1
|
||||
34e: 20 f0 brcs .+8 ; 0x358 <opgaveextra+0x9c>
|
||||
current = 0;
|
||||
350: 10 92 01 06 sts 0x0601, r1
|
||||
354: 10 92 00 06 sts 0x0600, r1
|
||||
358: 8f ec ldi r24, 0xCF ; 207
|
||||
35a: 97 e0 ldi r25, 0x07 ; 7
|
||||
35c: 01 97 sbiw r24, 0x01 ; 1
|
||||
35e: f1 f7 brne .-4 ; 0x35c <opgaveextra+0xa0>
|
||||
360: 00 c0 rjmp .+0 ; 0x362 <opgaveextra+0xa6>
|
||||
362: 00 00 nop
|
||||
}
|
||||
|
||||
_delay_ms(1);
|
||||
|
||||
PORTB = 0x00000000;
|
||||
364: 18 ba out 0x18, r1 ; 24
|
||||
|
||||
count++;
|
||||
366: 80 91 02 06 lds r24, 0x0602
|
||||
36a: 90 91 03 06 lds r25, 0x0603
|
||||
36e: 01 96 adiw r24, 0x01 ; 1
|
||||
370: 90 93 03 06 sts 0x0603, r25
|
||||
374: 80 93 02 06 sts 0x0602, r24
|
||||
}
|
||||
378: c5 cf rjmp .-118 ; 0x304 <opgaveextra+0x48>
|
||||
|
||||
0000037a <main>:
|
||||
|
||||
//opgave2knop();
|
||||
|
||||
//opgave3();
|
||||
|
||||
opgaveextra();
|
||||
37a: a0 df rcall .-192 ; 0x2bc <opgaveextra>
|
||||
|
||||
0000037c <__umulhisi3>:
|
||||
37c: a2 9f mul r26, r18
|
||||
37e: b0 01 movw r22, r0
|
||||
380: b3 9f mul r27, r19
|
||||
382: c0 01 movw r24, r0
|
||||
384: a3 9f mul r26, r19
|
||||
386: 70 0d add r23, r0
|
||||
388: 81 1d adc r24, r1
|
||||
38a: 11 24 eor r1, r1
|
||||
38c: 91 1d adc r25, r1
|
||||
38e: b2 9f mul r27, r18
|
||||
390: 70 0d add r23, r0
|
||||
392: 81 1d adc r24, r1
|
||||
394: 11 24 eor r1, r1
|
||||
396: 91 1d adc r25, r1
|
||||
398: 08 95 ret
|
||||
|
||||
0000039a <_exit>:
|
||||
39a: f8 94 cli
|
||||
|
||||
0000039c <__stop_program>:
|
||||
39c: ff cf rjmp .-2 ; 0x39c <__stop_program>
|
||||
|
||||
+208
-117
@@ -6,10 +6,26 @@ c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/..
|
||||
C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51/crtatmega128.o (exit)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_copy_data.o)
|
||||
main.o (__do_copy_data)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
|
||||
main.o (__do_clear_bss)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
main.o (__umulhisi3)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_udivmodhi4.o)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_divmodhi4.o) (__udivmodhi4)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(rand.o)
|
||||
main.o (rand)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(sprintf.o)
|
||||
main.o (sprintf)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(sprintf.o) (vfprintf)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen_P.o)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) (strnlen_P)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen.o)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) (strnlen)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(fputc.o)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) (fputc)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(ultoa_invert.o)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) (__ultoa_invert)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_divmodsi4.o)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(rand.o) (__divmodsi4)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_negsi2.o)
|
||||
@@ -20,8 +36,6 @@ c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/..
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(rand.o) (__mulohisi3)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_udivmodsi4.o)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_divmodsi4.o) (__udivmodsi4)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_muluhisi3.o) (__umulhisi3)
|
||||
|
||||
Discarded input sections
|
||||
|
||||
@@ -30,35 +44,20 @@ Discarded input sections
|
||||
.text 0x00000000 0x0 lcd.o
|
||||
.data 0x00000000 0x0 lcd.o
|
||||
.bss 0x00000000 0x0 lcd.o
|
||||
.text.display_char
|
||||
0x00000000 0x48 lcd.o
|
||||
.text.lcd_command
|
||||
0x00000000 0x40 lcd.o
|
||||
.text.init 0x00000000 0x90 lcd.o
|
||||
.text.display_text
|
||||
0x00000000 0x3c lcd.o
|
||||
.text.lcd_init
|
||||
0x00000000 0x8e lcd.o
|
||||
.text.set_cursor
|
||||
0x00000000 0x8 lcd.o
|
||||
.text.shift_display
|
||||
0x00000000 0x52 lcd.o
|
||||
.debug_info 0x00000000 0x5c9 lcd.o
|
||||
.debug_abbrev 0x00000000 0x1ac lcd.o
|
||||
.debug_loc 0x00000000 0x2e1 lcd.o
|
||||
.debug_aranges
|
||||
0x00000000 0x48 lcd.o
|
||||
.debug_ranges 0x00000000 0x38 lcd.o
|
||||
.debug_line 0x00000000 0x2c5 lcd.o
|
||||
.debug_str 0x00000000 0x211 lcd.o
|
||||
.comment 0x00000000 0x31 lcd.o
|
||||
.debug_frame 0x00000000 0x9c lcd.o
|
||||
.text 0x00000000 0x0 main.o
|
||||
.data 0x00000000 0x0 main.o
|
||||
.bss 0x00000000 0x0 main.o
|
||||
.rodata.str1.1
|
||||
0x00000000 0xa main.o
|
||||
.text.opgave1 0x00000000 0xba main.o
|
||||
.text.opgave2knop
|
||||
0x00000000 0x2 main.o
|
||||
0x00000000 0x94 main.o
|
||||
.text.opgave3 0x00000000 0x38 main.o
|
||||
.data.song 0x00000000 0x60 main.o
|
||||
.data.pattern 0x00000000 0x5a main.o
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_divmodhi4.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_divmodhi4.o)
|
||||
@@ -108,6 +107,36 @@ Discarded input sections
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_copy_data.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.prologue
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.text.libgcc.prologue
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_udivmodhi4.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_udivmodhi4.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_udivmodhi4.o)
|
||||
@@ -130,6 +159,39 @@ Discarded input sections
|
||||
.text.avr-libc
|
||||
0x00000000 0xb4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(rand.o)
|
||||
.comment 0x00000000 0x31 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(rand.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(sprintf.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(sprintf.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(sprintf.o)
|
||||
.text.avr-libc
|
||||
0x00000000 0x60 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(sprintf.o)
|
||||
.comment 0x00000000 0x31 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(sprintf.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
|
||||
.text.avr-libc
|
||||
0x00000000 0x3f6 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
|
||||
.comment 0x00000000 0x2d c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen_P.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen_P.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen_P.o)
|
||||
.text.avr-libc
|
||||
0x00000000 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen_P.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen.o)
|
||||
.text.avr-libc
|
||||
0x00000000 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(fputc.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(fputc.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(fputc.o)
|
||||
.text.avr-libc
|
||||
0x00000000 0x70 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(fputc.o)
|
||||
.comment 0x00000000 0x31 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(fputc.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(ultoa_invert.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(ultoa_invert.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(ultoa_invert.o)
|
||||
.text.avr-libc
|
||||
0x00000000 0xbc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(ultoa_invert.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_divmodsi4.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_divmodsi4.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_divmodsi4.o)
|
||||
@@ -210,22 +272,6 @@ Discarded input sections
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_udivmodsi4.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_udivmodsi4.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x1e c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.text.libgcc.prologue
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
|
||||
Memory Configuration
|
||||
|
||||
@@ -345,7 +391,7 @@ END GROUP
|
||||
.rela.plt
|
||||
*(.rela.plt)
|
||||
|
||||
.text 0x00000000 0xc2
|
||||
.text 0x00000000 0x39e
|
||||
*(.vectors)
|
||||
.vectors 0x00000000 0x8c C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51/crtatmega128.o
|
||||
0x00000000 __vector_default
|
||||
@@ -386,6 +432,8 @@ END GROUP
|
||||
*(.init4)
|
||||
.init4 0x00000098 0x1a c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_copy_data.o)
|
||||
0x00000098 __do_copy_data
|
||||
.init4 0x000000b2 0x10 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
|
||||
0x000000b2 __do_clear_bss
|
||||
*(.init4)
|
||||
*(.init5)
|
||||
*(.init5)
|
||||
@@ -396,54 +444,74 @@ END GROUP
|
||||
*(.init8)
|
||||
*(.init8)
|
||||
*(.init9)
|
||||
.init9 0x000000b2 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51/crtatmega128.o
|
||||
.init9 0x000000c2 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51/crtatmega128.o
|
||||
*(.init9)
|
||||
*(.text)
|
||||
.text 0x000000b6 0x2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51/crtatmega128.o
|
||||
0x000000b6 __vector_22
|
||||
0x000000b6 __vector_28
|
||||
0x000000b6 __vector_1
|
||||
0x000000b6 __vector_32
|
||||
0x000000b6 __vector_34
|
||||
0x000000b6 __vector_24
|
||||
0x000000b6 __vector_12
|
||||
0x000000b6 __bad_interrupt
|
||||
0x000000b6 __vector_6
|
||||
0x000000b6 __vector_31
|
||||
0x000000b6 __vector_3
|
||||
0x000000b6 __vector_23
|
||||
0x000000b6 __vector_30
|
||||
0x000000b6 __vector_25
|
||||
0x000000b6 __vector_11
|
||||
0x000000b6 __vector_13
|
||||
0x000000b6 __vector_17
|
||||
0x000000b6 __vector_19
|
||||
0x000000b6 __vector_7
|
||||
0x000000b6 __vector_27
|
||||
0x000000b6 __vector_5
|
||||
0x000000b6 __vector_33
|
||||
0x000000b6 __vector_4
|
||||
0x000000b6 __vector_9
|
||||
0x000000b6 __vector_2
|
||||
0x000000b6 __vector_21
|
||||
0x000000b6 __vector_15
|
||||
0x000000b6 __vector_29
|
||||
0x000000b6 __vector_8
|
||||
0x000000b6 __vector_26
|
||||
0x000000b6 __vector_14
|
||||
0x000000b6 __vector_10
|
||||
0x000000b6 __vector_16
|
||||
0x000000b6 __vector_18
|
||||
0x000000b6 __vector_20
|
||||
0x000000b8 . = ALIGN (0x2)
|
||||
.text 0x000000c6 0x2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51/crtatmega128.o
|
||||
0x000000c6 __vector_22
|
||||
0x000000c6 __vector_28
|
||||
0x000000c6 __vector_1
|
||||
0x000000c6 __vector_32
|
||||
0x000000c6 __vector_34
|
||||
0x000000c6 __vector_24
|
||||
0x000000c6 __vector_12
|
||||
0x000000c6 __bad_interrupt
|
||||
0x000000c6 __vector_6
|
||||
0x000000c6 __vector_31
|
||||
0x000000c6 __vector_3
|
||||
0x000000c6 __vector_23
|
||||
0x000000c6 __vector_30
|
||||
0x000000c6 __vector_25
|
||||
0x000000c6 __vector_11
|
||||
0x000000c6 __vector_13
|
||||
0x000000c6 __vector_17
|
||||
0x000000c6 __vector_19
|
||||
0x000000c6 __vector_7
|
||||
0x000000c6 __vector_27
|
||||
0x000000c6 __vector_5
|
||||
0x000000c6 __vector_33
|
||||
0x000000c6 __vector_4
|
||||
0x000000c6 __vector_9
|
||||
0x000000c6 __vector_2
|
||||
0x000000c6 __vector_21
|
||||
0x000000c6 __vector_15
|
||||
0x000000c6 __vector_29
|
||||
0x000000c6 __vector_8
|
||||
0x000000c6 __vector_26
|
||||
0x000000c6 __vector_14
|
||||
0x000000c6 __vector_16
|
||||
0x000000c6 __vector_18
|
||||
0x000000c6 __vector_20
|
||||
0x000000c8 . = ALIGN (0x2)
|
||||
*(.text.*)
|
||||
.text.main 0x000000b8 0x6 main.o
|
||||
0x000000b8 main
|
||||
0x000000be . = ALIGN (0x2)
|
||||
.text.display_char
|
||||
0x000000c8 0x48 lcd.o
|
||||
0x000000c8 display_char
|
||||
.text.lcd_command
|
||||
0x00000110 0x40 lcd.o
|
||||
0x00000110 lcd_command
|
||||
.text.display_text
|
||||
0x00000150 0x36 lcd.o
|
||||
0x00000150 display_text
|
||||
.text.clear_display
|
||||
0x00000186 0xa lcd.o
|
||||
0x00000186 clear_display
|
||||
.text.__vector_10
|
||||
0x00000190 0x12c main.o
|
||||
0x00000190 __vector_10
|
||||
.text.opgaveextra
|
||||
0x000002bc 0xbe main.o
|
||||
0x000002bc opgaveextra
|
||||
.text.main 0x0000037a 0x2 main.o
|
||||
0x0000037a main
|
||||
.text.libgcc.mul
|
||||
0x0000037c 0x1e c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_umulhisi3.o)
|
||||
0x0000037c __umulhisi3
|
||||
0x0000039a . = ALIGN (0x2)
|
||||
*(.fini9)
|
||||
.fini9 0x000000be 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_exit.o)
|
||||
0x000000be _exit
|
||||
0x000000be exit
|
||||
.fini9 0x0000039a 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_exit.o)
|
||||
0x0000039a _exit
|
||||
0x0000039a exit
|
||||
*(.fini9)
|
||||
*(.fini8)
|
||||
*(.fini8)
|
||||
@@ -462,36 +530,48 @@ END GROUP
|
||||
*(.fini1)
|
||||
*(.fini1)
|
||||
*(.fini0)
|
||||
.fini0 0x000000be 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_exit.o)
|
||||
.fini0 0x0000039a 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_exit.o)
|
||||
*(.fini0)
|
||||
0x000000c2 _etext = .
|
||||
0x0000039e _etext = .
|
||||
|
||||
.data 0x00800100 0x0 load address 0x000000c2
|
||||
.data 0x00800100 0x500 load address 0x0000039e
|
||||
0x00800100 PROVIDE (__data_start, .)
|
||||
*(.data)
|
||||
*(.data*)
|
||||
.data.mario 0x00800100 0x4e0 main.o
|
||||
0x00800100 mario
|
||||
*(.rodata)
|
||||
*(.rodata*)
|
||||
.rodata.str1.1
|
||||
0x008005e0 0x20 main.o
|
||||
*(.gnu.linkonce.d*)
|
||||
0x00800100 . = ALIGN (0x2)
|
||||
0x00800100 _edata = .
|
||||
0x00800100 PROVIDE (__data_end, .)
|
||||
0x00800600 . = ALIGN (0x2)
|
||||
0x00800600 _edata = .
|
||||
0x00800600 PROVIDE (__data_end, .)
|
||||
|
||||
.bss 0x00800100 0x0
|
||||
0x00800100 PROVIDE (__bss_start, .)
|
||||
.bss 0x00800600 0x8
|
||||
0x00800600 PROVIDE (__bss_start, .)
|
||||
*(.bss)
|
||||
*(.bss*)
|
||||
.bss.current 0x00800600 0x2 main.o
|
||||
0x00800600 current
|
||||
.bss.count 0x00800602 0x2 main.o
|
||||
0x00800602 count
|
||||
.bss.flip 0x00800604 0x2 main.o
|
||||
0x00800604 flip
|
||||
.bss.opgave 0x00800606 0x2 main.o
|
||||
0x00800606 opgave
|
||||
*(COMMON)
|
||||
0x00800100 PROVIDE (__bss_end, .)
|
||||
0x000000c2 __data_load_start = LOADADDR (.data)
|
||||
0x000000c2 __data_load_end = (__data_load_start + SIZEOF (.data))
|
||||
0x00800608 PROVIDE (__bss_end, .)
|
||||
0x0000039e __data_load_start = LOADADDR (.data)
|
||||
0x0000089e __data_load_end = (__data_load_start + SIZEOF (.data))
|
||||
|
||||
.noinit 0x00800100 0x0
|
||||
0x00800100 PROVIDE (__noinit_start, .)
|
||||
.noinit 0x00800608 0x0
|
||||
0x00800608 PROVIDE (__noinit_start, .)
|
||||
*(.noinit*)
|
||||
0x00800100 PROVIDE (__noinit_end, .)
|
||||
0x00800100 _end = .
|
||||
0x00800100 PROVIDE (__heap_start, .)
|
||||
0x00800608 PROVIDE (__noinit_end, .)
|
||||
0x00800608 _end = .
|
||||
0x00800608 PROVIDE (__heap_start, .)
|
||||
|
||||
.eeprom 0x00810000 0x0
|
||||
*(.eeprom*)
|
||||
@@ -532,8 +612,9 @@ END GROUP
|
||||
|
||||
.comment 0x00000000 0x30
|
||||
*(.comment)
|
||||
.comment 0x00000000 0x30 main.o
|
||||
.comment 0x00000000 0x30 lcd.o
|
||||
0x31 (size before relaxing)
|
||||
.comment 0x00000030 0x31 main.o
|
||||
|
||||
.note.gnu.avr.deviceinfo
|
||||
0x00000000 0x3c
|
||||
@@ -555,38 +636,47 @@ END GROUP
|
||||
.debug_sfnames
|
||||
*(.debug_sfnames)
|
||||
|
||||
.debug_aranges 0x00000000 0x30
|
||||
.debug_aranges 0x00000000 0x98
|
||||
*(.debug_aranges)
|
||||
.debug_aranges
|
||||
0x00000000 0x30 main.o
|
||||
0x00000000 0x50 lcd.o
|
||||
.debug_aranges
|
||||
0x00000050 0x48 main.o
|
||||
|
||||
.debug_pubnames
|
||||
*(.debug_pubnames)
|
||||
|
||||
.debug_info 0x00000000 0x40a
|
||||
.debug_info 0x00000000 0xd95
|
||||
*(.debug_info .gnu.linkonce.wi.*)
|
||||
.debug_info 0x00000000 0x40a main.o
|
||||
.debug_info 0x00000000 0x5ff lcd.o
|
||||
.debug_info 0x000005ff 0x796 main.o
|
||||
|
||||
.debug_abbrev 0x00000000 0x1fd
|
||||
.debug_abbrev 0x00000000 0x450
|
||||
*(.debug_abbrev)
|
||||
.debug_abbrev 0x00000000 0x1fd main.o
|
||||
.debug_abbrev 0x00000000 0x1ac lcd.o
|
||||
.debug_abbrev 0x000001ac 0x2a4 main.o
|
||||
|
||||
.debug_line 0x00000000 0x1de
|
||||
.debug_line 0x00000000 0x6a6
|
||||
*(.debug_line .debug_line.* .debug_line_end)
|
||||
.debug_line 0x00000000 0x1de main.o
|
||||
.debug_line 0x00000000 0x2df lcd.o
|
||||
.debug_line 0x000002df 0x3c7 main.o
|
||||
|
||||
.debug_frame 0x00000000 0x44
|
||||
.debug_frame 0x00000000 0x178
|
||||
*(.debug_frame)
|
||||
.debug_frame 0x00000000 0x44 main.o
|
||||
.debug_frame 0x00000000 0xac lcd.o
|
||||
.debug_frame 0x000000ac 0xcc main.o
|
||||
|
||||
.debug_str 0x00000000 0x1f2
|
||||
.debug_str 0x00000000 0x28d
|
||||
*(.debug_str)
|
||||
.debug_str 0x00000000 0x1f2 main.o
|
||||
0x230 (size before relaxing)
|
||||
.debug_str 0x00000000 0x1e5 lcd.o
|
||||
0x223 (size before relaxing)
|
||||
.debug_str 0x000001e5 0xa8 main.o
|
||||
0x2ad (size before relaxing)
|
||||
|
||||
.debug_loc 0x00000000 0x27
|
||||
.debug_loc 0x00000000 0x4aa
|
||||
*(.debug_loc)
|
||||
.debug_loc 0x00000000 0x27 main.o
|
||||
.debug_loc 0x00000000 0x2e1 lcd.o
|
||||
.debug_loc 0x000002e1 0x1c9 main.o
|
||||
|
||||
.debug_macinfo
|
||||
*(.debug_macinfo)
|
||||
@@ -606,9 +696,10 @@ END GROUP
|
||||
.debug_pubtypes
|
||||
*(.debug_pubtypes)
|
||||
|
||||
.debug_ranges 0x00000000 0x20
|
||||
.debug_ranges 0x00000000 0x78
|
||||
*(.debug_ranges)
|
||||
.debug_ranges 0x00000000 0x20 main.o
|
||||
.debug_ranges 0x00000000 0x40 lcd.o
|
||||
.debug_ranges 0x00000040 0x38 main.o
|
||||
|
||||
.debug_macro
|
||||
*(.debug_macro)
|
||||
|
||||
+138
-13
@@ -1,15 +1,140 @@
|
||||
S01100004D49432D5765656B332E737265634E
|
||||
S113000045C0000058C0000056C0000054C00000A5
|
||||
S113001052C0000050C000004EC000004CC00000A0
|
||||
S11300204AC0000048C0000046C0000044C00000B0
|
||||
S113003042C0000040C000003EC000003CC00000C0
|
||||
S11300403AC0000038C0000036C0000034C00000D0
|
||||
S113005032C0000030C000002EC000002CC00000E0
|
||||
S11300602AC0000028C0000026C0000024C00000F0
|
||||
S113007022C0000020C000001EC000001CC0000000
|
||||
S11300801AC0000018C0000016C0000011241FBED2
|
||||
S1130090CFEFD0E1DEBFCDBF11E0A0E0B1E0E2ECF4
|
||||
S11300A0F0E000E00BBF02C007900D92A030B10752
|
||||
S11300B0D9F702D004C0A4CF81E090E00895F89469
|
||||
S10500C0FFCF6C
|
||||
S113000045C0000060C000005EC000005CC000008D
|
||||
S11300105AC0000058C0000056C0000054C0000080
|
||||
S113002052C0000050C00000B3C000004CC000002B
|
||||
S11300304AC0000048C0000046C0000044C00000A0
|
||||
S113004042C0000040C000003EC000003CC00000B0
|
||||
S11300503AC0000038C0000036C0000034C00000C0
|
||||
S113006032C0000030C000002EC000002CC00000D0
|
||||
S11300702AC0000028C0000026C0000024C00000E0
|
||||
S113008022C0000020C000001EC0000011241FBEBA
|
||||
S1130090CFEFD0E1DEBFCDBF16E0A0E0B1E0EEE9E6
|
||||
S11300A0F3E000E00BBF02C007900D92A030B1074F
|
||||
S11300B0D9F726E0A0E0B6E001C01D92A830B2074F
|
||||
S11300C0E1F75BD16AC19CCF982F907F95BB95B324
|
||||
S11300D09C6095BBEFE9FFE03197F1F700C00000A9
|
||||
S11300E094E095BBEFE9FFE03197F1F700C0000021
|
||||
S11300F0F0E18F9FC001112485BB85B38C6085BB63
|
||||
S11301008FE99FE00197F1F700C0000015BA089548
|
||||
S1130110982F907F95BBAB9AEFE9FFE03197F1F709
|
||||
S113012000C0000094E095BBEFE9FFE03197F1F7E0
|
||||
S113013000C00000F0E18F9FC001112485BBAB9A81
|
||||
S11301408FE99FE00197F1F700C0000015BA089508
|
||||
S1130150CF93DF93EB01892B19F080ECD9DF02C038
|
||||
S113016080E8D6DF8881882359F02196ADDF8FE9B6
|
||||
S11301709FE00197F1F700C0000089918111F6CF4B
|
||||
S1130180DF91CF91089581E0C3DF80E8C1CF089566
|
||||
S11301901F920F920FB60F9211240BB60F922F934A
|
||||
S11301A03F934F935F936F937F938F939F93AF93FB
|
||||
S11301B0BF93EF93FF9380910606909107068230D8
|
||||
S11301C09105E9F414BC8FE082BBDDDF2FEF80E7FB
|
||||
S11301D092E0215080409040E1F700C000006AEEB8
|
||||
S11301E075E081E090E0B4DF2FEF84E39CE02150E0
|
||||
S11301F080409040E1F700C0000012BA4CC0833048
|
||||
S11302009105D1F492B381E0892782BB80910406E1
|
||||
S113021090910506892B39F08AE884BD1092050671
|
||||
S11302201092040638C08CE384BD81E090E0909382
|
||||
S11302300506809304062FC0049769F5E091000633
|
||||
S1130240F0910106EE0FFF1FEE0FFF1FE050FF4F6E
|
||||
S113025080819181892B21F092B381E0892782BB2F
|
||||
S1130260E0910006F0910106EE0FFF1FEE0FFF1F55
|
||||
S1130270E050FF4F408151819A01A3E9B4E27ED05E
|
||||
S1130280481B590B56954795840F951F969587954E
|
||||
S11302909695879584BDFF91EF91BF91AF919F9102
|
||||
S11302A08F917F916F915F914F913F912F910F901B
|
||||
S11302B00BBE0F900FBE0F901F90189584E090E036
|
||||
S11302C09093070680930606109203061092020686
|
||||
S11302D010920106109200068FEF81BB87BB18BAFB
|
||||
S11302E02FEF84E39CE0215080409040E1F700C070
|
||||
S11302F0000018BA14BC85B5836085BD87B78064D7
|
||||
S113030087BF789418BA4091000650910106FA010B
|
||||
S1130310EE0FFF1FEE0FFF1FE050FF4F22813381CE
|
||||
S1130320ADECBCEC2BD0887F209102063091030603
|
||||
S11303308217930788F44F5F5F4F509301064093F1
|
||||
S1130340000610920306109202064831510520F06F
|
||||
S113035010920106109200068FEC97E00197F1F7D6
|
||||
S113036000C0000018BA809102069091030601961D
|
||||
S11303709093030680930206C5CFA0DFA29FB0012D
|
||||
S1130380B39FC001A39F700D811D1124911DB29FC5
|
||||
S1110390700D811D1124911D0895F894FFCF66
|
||||
S113039E94026400000096009402640000002C0194
|
||||
S11303AE9402640000002C01FE016400000064004D
|
||||
S11303BE9402640000002C01020364000000260273
|
||||
S11303CE7C01640000003F02FE0164000000C201D3
|
||||
S11303DE7C01640000009001400164000000F401FF
|
||||
S11303EEB801640000002C01E001500000004A0135
|
||||
S11303FEC201640000009600AE01640000002C01EE
|
||||
S113040E7C0164000000C800940250000000C80083
|
||||
S113041EF8023200000096005C03640000002C0118
|
||||
S113042EBC02500000009600F802320000005E018B
|
||||
S113043E9402500000002C010802500000009600A7
|
||||
S113044E4402500000009600E00150000000F40148
|
||||
S113045EFE0164000000C2017C01640000009001F2
|
||||
S113046E400164000000F401B801640000002C0196
|
||||
S113047EE001500000004A01C20164000000960031
|
||||
S113048EAE01640000002C017C0164000000C80071
|
||||
S113049E940250000000C800F802320000009600DA
|
||||
S11304AE5C03640000002C01BC02500000009600A6
|
||||
S11304BEF802320000005E019402500000002C018C
|
||||
S11304CE08025000000096004402500000009600FE
|
||||
S11304DEE00150000000F401F401640000002C015E
|
||||
S11304EEF802640000006400D0026400000096006C
|
||||
S11304FEA8026400000096006C02960000002C0115
|
||||
S113050E8A02960000002C017C0164000000960013
|
||||
S113051EAE01640000009600F401640000002C019A
|
||||
S113052EAE01640000009600F40164000000640053
|
||||
S113053E3A0264000000DC00F401640000002C01A7
|
||||
S113054EF802640000006400D0026400000096000B
|
||||
S113055EA8026400000096006C02960000002C01B4
|
||||
S113056E8A02C80000002C01FC03500000002C017C
|
||||
S113057EFC03500000009600FC03500000002C0108
|
||||
S113058E7C01640000002C01F401640000002C01C5
|
||||
S113059EF802640000006400D002640000009600BB
|
||||
S11305AEA8026400000096006C02960000002C0164
|
||||
S11305BE8A02960000002C017C0164000000960063
|
||||
S11305CEAE01640000009600F401640000002C01EA
|
||||
S11305DEAE01640000009600F401640000006400A3
|
||||
S11305EE3A0264000000A401490264000000C20142
|
||||
S11305FE260264000000A401F401640000006801F6
|
||||
S113060E7C01640000002C01F401640000002C0144
|
||||
S113061EF401640000009600F401640000002C0153
|
||||
S113062EF401640000002C01F80264000000640070
|
||||
S113063ED002640000009600A80264000000960038
|
||||
S113064E6C02960000002C018A02960000002C0118
|
||||
S113065E7C01640000009600AE0164000000960068
|
||||
S113066EF401640000002C01AE0164000000960049
|
||||
S113067EF4016400000064003A0264000000DC002F
|
||||
S113068EF401640000002C01F80264000000640010
|
||||
S113069ED002640000009600A802640000009600D8
|
||||
S11306AE6C02960000002C018A02C80000002C0186
|
||||
S11306BEFC03500000002C01FC03500000009600C7
|
||||
S11306CEFC03500000002C017C01640000002C018E
|
||||
S11306DEF401640000002C01F802640000006400C0
|
||||
S11306EED002640000009600A80264000000960088
|
||||
S11306FE6C02960000002C018A02960000002C0168
|
||||
S113070E7C01640000009600AE01640000009600B7
|
||||
S113071EF401640000002C01AE0164000000960098
|
||||
S113072EF4016400000064003A0264000000A401B5
|
||||
S113073E490264000000C201260264000000A40104
|
||||
S113074EF4016400000068017C01640000002C01C7
|
||||
S113075EF401640000002C01F40164000000960012
|
||||
S113076EF401640000002C01F4013C00000096002A
|
||||
S113077EF401500000002C01F4013C0000005E0165
|
||||
S113078EF4015000000096004402500000005E0187
|
||||
S113079E9402500000009600F401500000002C0159
|
||||
S11307AEAE015000000096007C015000000058027B
|
||||
S11307BEF4013C0000009600F401500000002C01EE
|
||||
S11307CEF4013C0000005E01F401500000009600AC
|
||||
S11307DE44025000000096009402500000002602CD
|
||||
S11307EE6603500000004501F80250000000580254
|
||||
S11307FEF4013C0000009600F401500000002C01AE
|
||||
S113080EF4013C0000005E01F4015000000096006B
|
||||
S113081E4402500000005E01940250000000960055
|
||||
S113082EF401500000002C01AE01500000009600AF
|
||||
S113083E7C015000000058029402640000009600EF
|
||||
S113084E9402640000002C019402640000002C0148
|
||||
S113085EFE016400000064009402640000002C0198
|
||||
S113086E02036400000026027C01640000003F02C3
|
||||
S113087E3A2D29207E20282D3A004F766572666C1B
|
||||
S113088E6F77002564002D2D2D2D2D2D2D2D2D0052
|
||||
S9030000FC
|
||||
|
||||
@@ -13,6 +13,7 @@ main.d main.o: .././main.c \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\4.9.2\include\stddef.h \
|
||||
.././lcd.h
|
||||
@@ -45,6 +46,8 @@ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\4.9.2\include\stddef.h:
|
||||
|
||||
+16
-10
@@ -16,7 +16,7 @@
|
||||
void display_char(unsigned char dat);
|
||||
void lcd_command(unsigned char dat);
|
||||
|
||||
void init()
|
||||
void lcd_init()
|
||||
{
|
||||
DDRC = 0b11111111;
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
lcd_command( 0x06 );
|
||||
// RAM address: 0, first position, line 1
|
||||
_delay_ms(50);
|
||||
lcd_command( 0x80 );
|
||||
clear_display();
|
||||
|
||||
_delay_ms(100);
|
||||
}
|
||||
@@ -61,10 +61,16 @@ void display_text( int line, char *text )
|
||||
display_char( text[count] );
|
||||
count++;
|
||||
|
||||
_delay_ms(1);
|
||||
_delay_ms(2);
|
||||
}
|
||||
}
|
||||
|
||||
void clear_display()
|
||||
{
|
||||
lcd_command(0b00000001);
|
||||
lcd_command(0b10000000);
|
||||
}
|
||||
|
||||
void set_cursor(int position)
|
||||
{
|
||||
position = position | (1<<7);
|
||||
@@ -78,7 +84,7 @@ void display_text( int line, char *text )
|
||||
|
||||
for (int i=0; i<count; i++) {
|
||||
lcd_command(data);
|
||||
_delay_ms(1);
|
||||
_delay_ms(2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,15 +92,15 @@ void display_text( int line, char *text )
|
||||
{
|
||||
PORTC = dat & 0xF0; // hoge nibble
|
||||
PORTC = PORTC | 0x0C; // Enable on (EN = 1, RS=1),
|
||||
_delay_ms(1); // wait 1 ms
|
||||
_delay_ms(2); // wait 1 ms
|
||||
PORTC = 0x04; // Enable off (EN = 0, RS = 1)
|
||||
|
||||
_delay_ms(1); // wait 1 ms
|
||||
_delay_ms(2); // wait 1 ms
|
||||
|
||||
PORTC = (dat & 0x0F) << 4; // lage nibble
|
||||
PORTC = PORTC | 0x0C; // Enable on (RS=1),
|
||||
// start (EN=1)
|
||||
_delay_ms(1); // wait 1 ms
|
||||
_delay_ms(2); // wait 1 ms
|
||||
PORTC = 0x00; // stop
|
||||
// (EN=0 RS=0)
|
||||
}
|
||||
@@ -104,15 +110,15 @@ void display_text( int line, char *text )
|
||||
PORTC = dat & 0xF0; // hoge nibble
|
||||
PORTC = PORTC | 0x08; // data (RS=0),
|
||||
// start (EN=1)
|
||||
_delay_ms(1); // wait 1 ms
|
||||
_delay_ms(2); // wait 1 ms
|
||||
PORTC = 0x04; // stop (EN = 0)
|
||||
|
||||
_delay_ms(1); // wait 1 ms
|
||||
_delay_ms(2); // wait 1 ms
|
||||
|
||||
PORTC = (dat & 0x0F) << 4; // lage nibble
|
||||
PORTC = PORTC | 0x08; // data (RS=0),
|
||||
// start (EN=1)
|
||||
_delay_ms(1); // wait 1 ms
|
||||
_delay_ms(2); // wait 1 ms
|
||||
PORTC = 0x00; // stop
|
||||
// (EN=0 RS=0)
|
||||
}
|
||||
+2
-1
@@ -9,10 +9,11 @@
|
||||
#ifndef LCD_H_
|
||||
#define LCD_H_
|
||||
|
||||
void init();
|
||||
void lcd_init();
|
||||
void display_text(int line, char *str);
|
||||
void display_char(unsigned char d);
|
||||
void set_cursor(int position);
|
||||
void shift_display(int left, int count);
|
||||
void clear_display();
|
||||
|
||||
#endif /* LCD_H_ */
|
||||
+500
-2
@@ -5,9 +5,11 @@
|
||||
* Author : kenny
|
||||
*/
|
||||
#define F_CPU 8000000UL //CPU op 8MHz
|
||||
#define NELEMS(x) (sizeof(x) / sizeof(x[0])) //Geeft het aantal elementen uit een array terug.
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
#include <avr/interrupt.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "lcd.h"
|
||||
@@ -30,18 +32,27 @@ PATTERN_STRUCT pattern[] = {
|
||||
{"Kenneth"}, {"Janco"}, {"Arthur"}, {"Martijn"}, {"Mauro"}, {"Rene"}, {"Remco"}, {"Jannick"}, {"Tim"}
|
||||
};
|
||||
|
||||
int opgave = 0;
|
||||
int flip = 0;
|
||||
int count = 0;
|
||||
int current = 0;
|
||||
|
||||
int main(void)
|
||||
{
|
||||
//opgave1();
|
||||
|
||||
opgave2knop();
|
||||
//opgave2knop();
|
||||
|
||||
//opgave3();
|
||||
|
||||
opgaveextra();
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void opgave1()
|
||||
{
|
||||
init();
|
||||
lcd_init();
|
||||
|
||||
srand(14152);
|
||||
|
||||
@@ -71,7 +82,494 @@ void opgave1()
|
||||
}
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
unsigned int frequency;
|
||||
unsigned int delay;
|
||||
} NOTES;
|
||||
|
||||
NOTES song[] = {
|
||||
{10, 250},{20, 250},{30, 250},{40, 250},{50, 250},{60, 250},{70, 250},{80, 250},{90, 250},{100, 250},
|
||||
{110, 250},{120, 250},{130, 250},{140, 250},{150, 250},{160, 250},{170, 250},{180, 250},{190, 250},{200, 250},
|
||||
{210, 250},{220, 250},{230, 250},{240, 250}
|
||||
};
|
||||
|
||||
NOTES mario[] = {
|
||||
{660, 100},
|
||||
{0, 150},
|
||||
{660, 100},
|
||||
{0, 300},
|
||||
{660, 100},
|
||||
{0, 300},
|
||||
{510, 100},
|
||||
{0, 100},
|
||||
{660, 100},
|
||||
{0, 300},
|
||||
{770, 100},
|
||||
{0, 550},
|
||||
{380, 100},
|
||||
{0, 575},
|
||||
|
||||
{510, 100},
|
||||
{0, 450},
|
||||
{380, 100},
|
||||
{0, 400},
|
||||
{320, 100},
|
||||
{0, 500},
|
||||
{440, 100},
|
||||
{0, 300},
|
||||
{480, 80},
|
||||
{0, 330},
|
||||
{450, 100},
|
||||
{0, 150},
|
||||
{430, 100},
|
||||
{0, 300},
|
||||
{380, 100},
|
||||
{0, 200},
|
||||
{660, 80},
|
||||
{0, 200},
|
||||
{760, 50},
|
||||
{0, 150},
|
||||
{860, 100},
|
||||
{0, 300},
|
||||
{700, 80},
|
||||
{0, 150},
|
||||
{760, 50},
|
||||
{0, 350},
|
||||
{660, 80},
|
||||
{0, 300},
|
||||
{520, 80},
|
||||
{0, 150},
|
||||
{580, 80},
|
||||
{0, 150},
|
||||
{480, 80},
|
||||
{0, 500},
|
||||
|
||||
{510, 100},
|
||||
{0, 450},
|
||||
{380, 100},
|
||||
{0, 400},
|
||||
{320, 100},
|
||||
{0, 500},
|
||||
{440, 100},
|
||||
{0, 300},
|
||||
{480, 80},
|
||||
{0, 330},
|
||||
{450, 100},
|
||||
{0, 150},
|
||||
{430, 100},
|
||||
{0, 300},
|
||||
{380, 100},
|
||||
{0, 200},
|
||||
{660, 80},
|
||||
{0, 200},
|
||||
{760, 50},
|
||||
{0, 150},
|
||||
{860, 100},
|
||||
{0, 300},
|
||||
{700, 80},
|
||||
{0, 150},
|
||||
{760, 50},
|
||||
{0, 350},
|
||||
{660, 80},
|
||||
{0, 300},
|
||||
{520, 80},
|
||||
{0, 150},
|
||||
{580, 80},
|
||||
{0, 150},
|
||||
{480, 80},
|
||||
{0, 500},
|
||||
|
||||
{500, 100},
|
||||
{0, 300},
|
||||
|
||||
{760, 100},
|
||||
{0, 100},
|
||||
{720, 100},
|
||||
{0, 150},
|
||||
{680, 100},
|
||||
{0, 150},
|
||||
{620, 150},
|
||||
{0, 300},
|
||||
|
||||
{650, 150},
|
||||
{0, 300},
|
||||
{380, 100},
|
||||
{0, 150},
|
||||
{430, 100},
|
||||
{0, 150},
|
||||
|
||||
{500, 100},
|
||||
{0, 300},
|
||||
{430, 100},
|
||||
{0, 150},
|
||||
{500, 100},
|
||||
{0, 100},
|
||||
{570, 100},
|
||||
{0, 220},
|
||||
|
||||
{500, 100},
|
||||
{0, 300},
|
||||
|
||||
{760, 100},
|
||||
{0, 100},
|
||||
{720, 100},
|
||||
{0, 150},
|
||||
{680, 100},
|
||||
{0, 150},
|
||||
{620, 150},
|
||||
{0, 300},
|
||||
|
||||
{650, 200},
|
||||
{0, 300},
|
||||
|
||||
{1020, 80},
|
||||
{0, 300},
|
||||
{1020, 80},
|
||||
{0, 150},
|
||||
{1020, 80},
|
||||
{0, 300},
|
||||
|
||||
{380, 100},
|
||||
{0, 300},
|
||||
{500, 100},
|
||||
{0, 300},
|
||||
|
||||
{760, 100},
|
||||
{0, 100},
|
||||
{720, 100},
|
||||
{0, 150},
|
||||
{680, 100},
|
||||
{0, 150},
|
||||
{620, 150},
|
||||
{0, 300},
|
||||
|
||||
{650, 150},
|
||||
{0, 300},
|
||||
{380, 100},
|
||||
{0, 150},
|
||||
{430, 100},
|
||||
{0, 150},
|
||||
|
||||
{500, 100},
|
||||
{0, 300},
|
||||
{430, 100},
|
||||
{0, 150},
|
||||
{500, 100},
|
||||
{0, 100},
|
||||
{570, 100},
|
||||
{0, 420},
|
||||
|
||||
{585, 100},
|
||||
{0, 450},
|
||||
|
||||
{550, 100},
|
||||
{0, 420},
|
||||
|
||||
{500, 100},
|
||||
{0, 360},
|
||||
|
||||
{380, 100},
|
||||
{0, 300},
|
||||
{500, 100},
|
||||
{0, 300},
|
||||
{500, 100},
|
||||
{0, 150},
|
||||
{500, 100},
|
||||
{0, 300},
|
||||
|
||||
{500, 100},
|
||||
{0, 300},
|
||||
|
||||
{760, 100},
|
||||
{0, 100},
|
||||
{720, 100},
|
||||
{0, 150},
|
||||
{680, 100},
|
||||
{0, 150},
|
||||
{620, 150},
|
||||
{0, 300},
|
||||
|
||||
{650, 150},
|
||||
{0, 300},
|
||||
{380, 100},
|
||||
{0, 150},
|
||||
{430, 100},
|
||||
{0, 150},
|
||||
|
||||
{500, 100},
|
||||
{0, 300},
|
||||
{430, 100},
|
||||
{0, 150},
|
||||
{500, 100},
|
||||
{0, 100},
|
||||
{570, 100},
|
||||
{0, 220},
|
||||
|
||||
{500, 100},
|
||||
{0, 300},
|
||||
|
||||
{760, 100},
|
||||
{0, 100},
|
||||
{720, 100},
|
||||
{0, 150},
|
||||
{680, 100},
|
||||
{0, 150},
|
||||
{620, 150},
|
||||
{0, 300},
|
||||
|
||||
{650, 200},
|
||||
{0, 300},
|
||||
|
||||
{1020, 80},
|
||||
{0, 300},
|
||||
{1020, 80},
|
||||
{0, 150},
|
||||
{1020, 80},
|
||||
{0, 300},
|
||||
|
||||
{380, 100},
|
||||
{0, 300},
|
||||
{500, 100},
|
||||
{0, 300},
|
||||
|
||||
{760, 100},
|
||||
{0, 100},
|
||||
{720, 100},
|
||||
{0, 150},
|
||||
{680, 100},
|
||||
{0, 150},
|
||||
{620, 150},
|
||||
{0, 300},
|
||||
|
||||
{650, 150},
|
||||
{0, 300},
|
||||
{380, 100},
|
||||
{0, 150},
|
||||
{430, 100},
|
||||
{0, 150},
|
||||
|
||||
{500, 100},
|
||||
{0, 300},
|
||||
{430, 100},
|
||||
{0, 150},
|
||||
{500, 100},
|
||||
{0, 100},
|
||||
{570, 100},
|
||||
{0, 420},
|
||||
|
||||
{585, 100},
|
||||
{0, 450},
|
||||
|
||||
{550, 100},
|
||||
{0, 420},
|
||||
|
||||
{500, 100},
|
||||
{0, 360},
|
||||
|
||||
{380, 100},
|
||||
{0, 300},
|
||||
{500, 100},
|
||||
{0, 300},
|
||||
{500, 100},
|
||||
{0, 150},
|
||||
{500, 100},
|
||||
{0, 300},
|
||||
|
||||
{500, 60},
|
||||
{0, 150},
|
||||
{500, 80},
|
||||
{0, 300},
|
||||
{500, 60},
|
||||
{0, 350},
|
||||
{500, 80},
|
||||
{0, 150},
|
||||
{580, 80},
|
||||
{0, 350},
|
||||
{660, 80},
|
||||
{0, 150},
|
||||
{500, 80},
|
||||
{0, 300},
|
||||
{430, 80},
|
||||
{0, 150},
|
||||
{380, 80},
|
||||
{0, 600},
|
||||
|
||||
{500, 60},
|
||||
{0, 150},
|
||||
{500, 80},
|
||||
{0, 300},
|
||||
{500, 60},
|
||||
{0, 350},
|
||||
{500, 80},
|
||||
{0, 150},
|
||||
{580, 80},
|
||||
{0, 150},
|
||||
{660, 80},
|
||||
{0, 550},
|
||||
|
||||
{870, 80},
|
||||
{0, 325},
|
||||
{760, 80},
|
||||
{0, 600},
|
||||
|
||||
{500, 60},
|
||||
{0, 150},
|
||||
{500, 80},
|
||||
{0, 300},
|
||||
{500, 60},
|
||||
{0, 350},
|
||||
{500, 80},
|
||||
{0, 150},
|
||||
{580, 80},
|
||||
{0, 350},
|
||||
{660, 80},
|
||||
{0, 150},
|
||||
{500, 80},
|
||||
{0, 300},
|
||||
{430, 80},
|
||||
{0, 150},
|
||||
{380, 80},
|
||||
{0, 600},
|
||||
|
||||
{660, 100},
|
||||
{0, 150},
|
||||
{660, 100},
|
||||
{0, 300},
|
||||
{660, 100},
|
||||
{0, 300},
|
||||
{510, 100},
|
||||
{0, 100},
|
||||
{660, 100},
|
||||
{0, 300},
|
||||
{770, 100},
|
||||
{0, 550},
|
||||
{380, 100},
|
||||
{0, 575}
|
||||
};
|
||||
|
||||
ISR(TIMER2_OVF_vect)
|
||||
{
|
||||
if(opgave == 2)
|
||||
{
|
||||
TCNT2 = 0;
|
||||
PORTD = 0x0F;
|
||||
|
||||
clear_display();
|
||||
|
||||
_delay_ms(100);
|
||||
|
||||
display_text(1, "Overflow");
|
||||
|
||||
_delay_ms(500);
|
||||
|
||||
PORTD = 0x00;
|
||||
}
|
||||
else if(opgave == 3)
|
||||
{
|
||||
PORTD ^= 0x01;
|
||||
|
||||
if(flip)
|
||||
{
|
||||
TCNT2 = 255 - 117;
|
||||
flip = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
TCNT2 = 255 - 195;
|
||||
flip = 1;
|
||||
}
|
||||
}
|
||||
else if(opgave == 4)
|
||||
{
|
||||
if(mario[current].frequency != 0)
|
||||
PORTD ^= 0x01;
|
||||
|
||||
TCNT2 = (mario[current].frequency / 7);
|
||||
}
|
||||
}
|
||||
|
||||
void opgave2knop()
|
||||
{
|
||||
opgave = 2;
|
||||
|
||||
lcd_init();
|
||||
|
||||
DDRD = 0x0F;
|
||||
|
||||
TCNT2 = 245;
|
||||
TCCR2 |= 0x06;
|
||||
TIMSK |= (1<<6);
|
||||
sei();
|
||||
|
||||
char str[15];
|
||||
|
||||
while(1)
|
||||
{
|
||||
sprintf(str, "%d", TCNT2);
|
||||
|
||||
display_text(0, str);
|
||||
display_text(1, "---------");
|
||||
|
||||
_delay_ms(1000);
|
||||
}
|
||||
}
|
||||
|
||||
void opgave3()
|
||||
{
|
||||
opgave = 3;
|
||||
flip = 0;
|
||||
|
||||
DDRD = 0xFF;
|
||||
|
||||
TCNT2 = 255 - 117;
|
||||
TCCR2 |= 0x05;
|
||||
TIMSK |= (1<<6);
|
||||
sei();
|
||||
|
||||
while(1)
|
||||
{
|
||||
_delay_ms(10);
|
||||
}
|
||||
}
|
||||
|
||||
void opgaveextra()
|
||||
{
|
||||
opgave = 4;
|
||||
count = 0;
|
||||
current = 0;
|
||||
|
||||
DDRD = 0xFF;
|
||||
DDRB = 0xFF;
|
||||
|
||||
PORTB = 0x01110000;
|
||||
|
||||
_delay_ms(500);
|
||||
|
||||
PORTB = 0;
|
||||
|
||||
TCNT2 = 0;
|
||||
TCCR2 |= 0x03;
|
||||
TIMSK |= (1<<6);
|
||||
sei();
|
||||
|
||||
while(1)
|
||||
{
|
||||
PORTB = 0x10000000;
|
||||
|
||||
if(count > ((mario[current].delay / 10)*8))
|
||||
{
|
||||
current++;
|
||||
|
||||
count = 0;
|
||||
|
||||
if(current >= NELEMS(song))
|
||||
current = 0;
|
||||
}
|
||||
|
||||
_delay_ms(1);
|
||||
|
||||
PORTB = 0x00000000;
|
||||
|
||||
count++;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user