This commit is contained in:
Dorian Zedler 2018-07-16 17:18:54 +02:00
parent 0b30e830bf
commit e53b583fd2
7 changed files with 281 additions and 323 deletions

Binary file not shown.

View file

@ -1,25 +1,22 @@
:1000000014C024C023C022C021C020C01FC01EC0F5 :1000000014C019C018C017C016C015C014C013C042
:100010001DC01CC01BC01AC019C018C017C016C014 :1000100012C011C010C00FC00EC00DC00CC00BC06C
:1000200015C014C013C012C011C011241FBECFEDE3 :100020000AC009C008C007C006C011241FBECFED1A
:10003000CDBF10E0A0E6B0E0E4E6F1E002C005903C :10003000CDBF80D089C0E4CFCF93C2E362D0C1509E
:100040000D92A236B107D9F780D08AC0D9CFCF930D :10004000E9F7CF910895CF93C62F843038F48230EA
:10005000C2E362D0C150E9F7CF910895CF93C62F84 :1000500048F4882371F0813049F00CC0843051F4A9
:10006000843038F4823048F4882371F0813049F0CC :10006000939808C04F73833009F4405C842F8068F4
:100070000CC0843051F4939808C04F73833009F456 :1000700024D0939A929A929A98B39F708C2F807FF3
:10008000405C842F806824D0939A929A929A98B375 :10008000982B98BB98B39F70892B88BB92989298B5
:100090009F708C2F807F982B98BB98B39F70892B73 :1000900038D087B3803F79F4929A929A88B3C29508
:1000A00088BB9298929838D087B3803F79F4929A1F :1000A000C07F8F708C2B88BB88B38F70C82BC8BB68
:1000B000929A88B3C295C07F8F708C2B88BB88B30F :1000B0009298929826D0CF91089540E0682F84E0DE
:1000C0008F70C82BC8BB9298929826D0CF91089574 :1000C000C2DF08958FEF87BB8B9A8A9A88BB939A79
:1000D00040E0682F84E0C2DF08958FEF87BB8B9AE2 :1000D000929AB2DFB1DFB0DF80E3EFDFADDF80E324
:1000E0008A9A88BB939A929AB2DFB1DFB0DF80E33D :1000E000ECDF0FD080E3E9DF88E2E7DF87B3807FD2
:1000F000EFDFADDF80E3ECDF0FD080E3E9DF88E204 :1000F00087BB8CE0E2DF86E0E0DF82E0DEDF9CDFD2
:10010000E7DF87B3807F87BB8CE0E2DF86E0E0DF5C :100100000895CF93DF931F92CDB7DD2784E48983D1
:1001100082E0DEDF9CDF0895CF93DF931F92CDB79F :1001100089819FEF980F9983882341F08981898194
:10012000DD2784E4898389819FEF980F9983882351 :1001200089819FEF980F99838111F8CF0F90DF910C
:1001300041F08981898189819FEF980F998381118D :10013000CF9108958FEF87BB8AEA88BBC3DF40E089
:10014000F8CF0F90DF91CF9108958FEF87BB8AEAA8 :0C01400061E480E080DFFFCFF894FFCF87
:1001500088BBC3DF40E060E670E080E07FDFFFCF78
:04016000F894FFCF41
:02016400740025
:00000001FF :00000001FF

View file

@ -3,338 +3,324 @@ AtTiny_alarm_clock.elf: file format elf32-avr
Sections: Sections:
Idx Name Size VMA LMA File off Algn Idx Name Size VMA LMA File off Algn
0 .text 00000164 00000000 00000000 00000074 2**1 0 .text 0000014c 00000000 00000000 00000054 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000002 00800060 00000164 000001d8 2**0 1 .data 00000000 00800060 00800060 000001a0 2**0
CONTENTS, ALLOC, LOAD, DATA CONTENTS, ALLOC, LOAD, DATA
2 .comment 00000030 00000000 00000000 000001da 2**0 2 .comment 00000030 00000000 00000000 000001a0 2**0
CONTENTS, READONLY CONTENTS, READONLY
3 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 0000020c 2**2 3 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 000001d0 2**2
CONTENTS, READONLY CONTENTS, READONLY
4 .debug_aranges 00000088 00000000 00000000 0000024c 2**0 4 .debug_aranges 00000088 00000000 00000000 00000210 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
5 .debug_info 0000090f 00000000 00000000 000002d4 2**0 5 .debug_info 00000915 00000000 00000000 00000298 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 00000631 00000000 00000000 00000be3 2**0 6 .debug_abbrev 00000631 00000000 00000000 00000bad 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
7 .debug_line 00000517 00000000 00000000 00001214 2**0 7 .debug_line 00000517 00000000 00000000 000011de 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
8 .debug_frame 000000f4 00000000 00000000 0000172c 2**2 8 .debug_frame 000000f4 00000000 00000000 000016f8 2**2
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
9 .debug_str 0000035c 00000000 00000000 00001820 2**0 9 .debug_str 0000035c 00000000 00000000 000017ec 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
10 .debug_loc 0000028c 00000000 00000000 00001b7c 2**0 10 .debug_loc 0000028c 00000000 00000000 00001b48 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
11 .debug_ranges 00000058 00000000 00000000 00001e08 2**0 11 .debug_ranges 00000058 00000000 00000000 00001dd4 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
Disassembly of section .text: Disassembly of section .text:
00000000 <__vectors>: 00000000 <__vectors>:
0: 14 c0 rjmp .+40 ; 0x2a <__ctors_end> 0: 14 c0 rjmp .+40 ; 0x2a <__ctors_end>
2: 24 c0 rjmp .+72 ; 0x4c <__bad_interrupt> 2: 19 c0 rjmp .+50 ; 0x36 <__bad_interrupt>
4: 23 c0 rjmp .+70 ; 0x4c <__bad_interrupt> 4: 18 c0 rjmp .+48 ; 0x36 <__bad_interrupt>
6: 22 c0 rjmp .+68 ; 0x4c <__bad_interrupt> 6: 17 c0 rjmp .+46 ; 0x36 <__bad_interrupt>
8: 21 c0 rjmp .+66 ; 0x4c <__bad_interrupt> 8: 16 c0 rjmp .+44 ; 0x36 <__bad_interrupt>
a: 20 c0 rjmp .+64 ; 0x4c <__bad_interrupt> a: 15 c0 rjmp .+42 ; 0x36 <__bad_interrupt>
c: 1f c0 rjmp .+62 ; 0x4c <__bad_interrupt> c: 14 c0 rjmp .+40 ; 0x36 <__bad_interrupt>
e: 1e c0 rjmp .+60 ; 0x4c <__bad_interrupt> e: 13 c0 rjmp .+38 ; 0x36 <__bad_interrupt>
10: 1d c0 rjmp .+58 ; 0x4c <__bad_interrupt> 10: 12 c0 rjmp .+36 ; 0x36 <__bad_interrupt>
12: 1c c0 rjmp .+56 ; 0x4c <__bad_interrupt> 12: 11 c0 rjmp .+34 ; 0x36 <__bad_interrupt>
14: 1b c0 rjmp .+54 ; 0x4c <__bad_interrupt> 14: 10 c0 rjmp .+32 ; 0x36 <__bad_interrupt>
16: 1a c0 rjmp .+52 ; 0x4c <__bad_interrupt> 16: 0f c0 rjmp .+30 ; 0x36 <__bad_interrupt>
18: 19 c0 rjmp .+50 ; 0x4c <__bad_interrupt> 18: 0e c0 rjmp .+28 ; 0x36 <__bad_interrupt>
1a: 18 c0 rjmp .+48 ; 0x4c <__bad_interrupt> 1a: 0d c0 rjmp .+26 ; 0x36 <__bad_interrupt>
1c: 17 c0 rjmp .+46 ; 0x4c <__bad_interrupt> 1c: 0c c0 rjmp .+24 ; 0x36 <__bad_interrupt>
1e: 16 c0 rjmp .+44 ; 0x4c <__bad_interrupt> 1e: 0b c0 rjmp .+22 ; 0x36 <__bad_interrupt>
20: 15 c0 rjmp .+42 ; 0x4c <__bad_interrupt> 20: 0a c0 rjmp .+20 ; 0x36 <__bad_interrupt>
22: 14 c0 rjmp .+40 ; 0x4c <__bad_interrupt> 22: 09 c0 rjmp .+18 ; 0x36 <__bad_interrupt>
24: 13 c0 rjmp .+38 ; 0x4c <__bad_interrupt> 24: 08 c0 rjmp .+16 ; 0x36 <__bad_interrupt>
26: 12 c0 rjmp .+36 ; 0x4c <__bad_interrupt> 26: 07 c0 rjmp .+14 ; 0x36 <__bad_interrupt>
28: 11 c0 rjmp .+34 ; 0x4c <__bad_interrupt> 28: 06 c0 rjmp .+12 ; 0x36 <__bad_interrupt>
0000002a <__ctors_end>: 0000002a <__ctors_end>:
2a: 11 24 eor r1, r1 2a: 11 24 eor r1, r1
2c: 1f be out 0x3f, r1 ; 63 2c: 1f be out 0x3f, r1 ; 63
2e: cf ed ldi r28, 0xDF ; 223 2e: cf ed ldi r28, 0xDF ; 223
30: cd bf out 0x3d, r28 ; 61 30: cd bf out 0x3d, r28 ; 61
32: 80 d0 rcall .+256 ; 0x134 <main>
34: 89 c0 rjmp .+274 ; 0x148 <_exit>
00000032 <__do_copy_data>: 00000036 <__bad_interrupt>:
32: 10 e0 ldi r17, 0x00 ; 0 36: e4 cf rjmp .-56 ; 0x0 <__vectors>
34: a0 e6 ldi r26, 0x60 ; 96
36: b0 e0 ldi r27, 0x00 ; 0
38: e4 e6 ldi r30, 0x64 ; 100
3a: f1 e0 ldi r31, 0x01 ; 1
3c: 02 c0 rjmp .+4 ; 0x42 <__SREG__+0x3>
3e: 05 90 lpm r0, Z+
40: 0d 92 st X+, r0
42: a2 36 cpi r26, 0x62 ; 98
44: b1 07 cpc r27, r17
46: d9 f7 brne .-10 ; 0x3e <__SP_L__+0x1>
48: 80 d0 rcall .+256 ; 0x14a <main>
4a: 8a c0 rjmp .+276 ; 0x160 <_exit>
0000004c <__bad_interrupt>: 00000038 <lcd_5ms>:
4c: d9 cf rjmp .-78 ; 0x0 <__vectors>
0000004e <lcd_5ms>:
void lcd_1s(void){ void lcd_1s(void){
for(uint8_t i=200;i>0;i--){ for(uint8_t i=200;i>0;i--){
lcd_5ms(); lcd_5ms();
} }
} }
4e: cf 93 push r28 38: cf 93 push r28
50: c2 e3 ldi r28, 0x32 ; 50 3a: c2 e3 ldi r28, 0x32 ; 50
52: 62 d0 rcall .+196 ; 0x118 <wait_100us> 3c: 62 d0 rcall .+196 ; 0x102 <wait_100us>
54: c1 50 subi r28, 0x01 ; 1 3e: c1 50 subi r28, 0x01 ; 1
56: e9 f7 brne .-6 ; 0x52 <lcd_5ms+0x4> 40: e9 f7 brne .-6 ; 0x3c <lcd_5ms+0x4>
58: cf 91 pop r28 42: cf 91 pop r28
5a: 08 95 ret 44: 08 95 ret
0000005c <lcd_write>: 00000046 <lcd_write>:
void lcd_instruct(uint8_t zeichen){ void lcd_instruct(uint8_t zeichen){
lcd_write(instruct,zeichen,0); lcd_write(instruct,zeichen,0);
} }
void lcd_write(uint8_t lcd_whichwrite, uint8_t zeichen, uint8_t position){ void lcd_write(uint8_t lcd_whichwrite, uint8_t zeichen, uint8_t position){
5c: cf 93 push r28 46: cf 93 push r28
5e: c6 2f mov r28, r22 48: c6 2f mov r28, r22
switch (lcd_whichwrite){ switch (lcd_whichwrite){
60: 84 30 cpi r24, 0x04 ; 4 4a: 84 30 cpi r24, 0x04 ; 4
62: 38 f4 brcc .+14 ; 0x72 <lcd_write+0x16> 4c: 38 f4 brcc .+14 ; 0x5c <lcd_write+0x16>
64: 82 30 cpi r24, 0x02 ; 2 4e: 82 30 cpi r24, 0x02 ; 2
66: 48 f4 brcc .+18 ; 0x7a <lcd_write+0x1e> 50: 48 f4 brcc .+18 ; 0x64 <lcd_write+0x1e>
68: 88 23 and r24, r24 52: 88 23 and r24, r24
6a: 71 f0 breq .+28 ; 0x88 <lcd_write+0x2c> 54: 71 f0 breq .+28 ; 0x72 <lcd_write+0x2c>
6c: 81 30 cpi r24, 0x01 ; 1 56: 81 30 cpi r24, 0x01 ; 1
6e: 49 f0 breq .+18 ; 0x82 <lcd_write+0x26> 58: 49 f0 breq .+18 ; 0x6c <lcd_write+0x26>
70: 0c c0 rjmp .+24 ; 0x8a <lcd_write+0x2e> 5a: 0c c0 rjmp .+24 ; 0x74 <lcd_write+0x2e>
72: 84 30 cpi r24, 0x04 ; 4 5c: 84 30 cpi r24, 0x04 ; 4
74: 51 f4 brne .+20 ; 0x8a <lcd_write+0x2e> 5e: 51 f4 brne .+20 ; 0x74 <lcd_write+0x2e>
case instruct : case instruct :
unset_lcd_RS; unset_lcd_RS;
76: 93 98 cbi 0x12, 3 ; 18 60: 93 98 cbi 0x12, 3 ; 18
break; break;
78: 08 c0 rjmp .+16 ; 0x8a <lcd_write+0x2e> 62: 08 c0 rjmp .+16 ; 0x74 <lcd_write+0x2e>
case line2: case line2:
case line1: case line1:
position = position & 0x3f; position = position & 0x3f;
7a: 4f 73 andi r20, 0x3F ; 63 64: 4f 73 andi r20, 0x3F ; 63
if (lcd_whichwrite == line2){ position=position + 0x40; }; if (lcd_whichwrite == line2){ position=position + 0x40; };
7c: 83 30 cpi r24, 0x03 ; 3 66: 83 30 cpi r24, 0x03 ; 3
7e: 09 f4 brne .+2 ; 0x82 <lcd_write+0x26> 68: 09 f4 brne .+2 ; 0x6c <lcd_write+0x26>
80: 40 5c subi r20, 0xC0 ; 192 6a: 40 5c subi r20, 0xC0 ; 192
case therepos: case therepos:
lcd_instruct(lcd_mask_Write_Adress(position)); lcd_instruct(lcd_mask_Write_Adress(position));
82: 84 2f mov r24, r20 6c: 84 2f mov r24, r20
84: 80 68 ori r24, 0x80 ; 128 6e: 80 68 ori r24, 0x80 ; 128
86: 24 d0 rcall .+72 ; 0xd0 <lcd_instruct> 70: 24 d0 rcall .+72 ; 0xba <lcd_instruct>
case here: case here:
set_lcd_RS; set_lcd_RS;
88: 93 9a sbi 0x12, 3 ; 18 72: 93 9a sbi 0x12, 3 ; 18
break; break;
} }
set_lcd_E; set_lcd_E;
8a: 92 9a sbi 0x12, 2 ; 18 74: 92 9a sbi 0x12, 2 ; 18
set_lcd_E; set_lcd_E;
8c: 92 9a sbi 0x12, 2 ; 18 76: 92 9a sbi 0x12, 2 ; 18
lcd_dataport=lcd_dataport&~lcd_dataport_mask|zeichen&lcd_dataport_mask; lcd_dataport=lcd_dataport&~lcd_dataport_mask|zeichen&lcd_dataport_mask;
8e: 98 b3 in r25, 0x18 ; 24 78: 98 b3 in r25, 0x18 ; 24
90: 9f 70 andi r25, 0x0F ; 15 7a: 9f 70 andi r25, 0x0F ; 15
92: 8c 2f mov r24, r28 7c: 8c 2f mov r24, r28
94: 80 7f andi r24, 0xF0 ; 240 7e: 80 7f andi r24, 0xF0 ; 240
96: 98 2b or r25, r24 80: 98 2b or r25, r24
98: 98 bb out 0x18, r25 ; 24 82: 98 bb out 0x18, r25 ; 24
lcd_dataport=lcd_dataport&~lcd_dataport_mask|zeichen&lcd_dataport_mask; lcd_dataport=lcd_dataport&~lcd_dataport_mask|zeichen&lcd_dataport_mask;
9a: 98 b3 in r25, 0x18 ; 24 84: 98 b3 in r25, 0x18 ; 24
9c: 9f 70 andi r25, 0x0F ; 15 86: 9f 70 andi r25, 0x0F ; 15
9e: 89 2b or r24, r25 88: 89 2b or r24, r25
a0: 88 bb out 0x18, r24 ; 24 8a: 88 bb out 0x18, r24 ; 24
unset_lcd_E; unset_lcd_E;
a2: 92 98 cbi 0x12, 2 ; 18 8c: 92 98 cbi 0x12, 2 ; 18
unset_lcd_E; unset_lcd_E;
a4: 92 98 cbi 0x12, 2 ; 18 8e: 92 98 cbi 0x12, 2 ; 18
wait_100us(); wait_100us();
a6: 38 d0 rcall .+112 ; 0x118 <wait_100us> 90: 38 d0 rcall .+112 ; 0x102 <wait_100us>
if (lcd_dataport_DDR==0xf0){ if (lcd_dataport_DDR==0xf0){
a8: 87 b3 in r24, 0x17 ; 23 92: 87 b3 in r24, 0x17 ; 23
aa: 80 3f cpi r24, 0xF0 ; 240 94: 80 3f cpi r24, 0xF0 ; 240
ac: 79 f4 brne .+30 ; 0xcc <lcd_write+0x70> 96: 79 f4 brne .+30 ; 0xb6 <lcd_write+0x70>
zeichen=zeichen << 4; zeichen=zeichen << 4;
set_lcd_E; set_lcd_E;
ae: 92 9a sbi 0x12, 2 ; 18 98: 92 9a sbi 0x12, 2 ; 18
set_lcd_E; set_lcd_E;
b0: 92 9a sbi 0x12, 2 ; 18 9a: 92 9a sbi 0x12, 2 ; 18
lcd_dataport=lcd_dataport&~lcd_dataport_mask|zeichen&lcd_dataport_mask; lcd_dataport=lcd_dataport&~lcd_dataport_mask|zeichen&lcd_dataport_mask;
b2: 88 b3 in r24, 0x18 ; 24 9c: 88 b3 in r24, 0x18 ; 24
b4: c2 95 swap r28 9e: c2 95 swap r28
b6: c0 7f andi r28, 0xF0 ; 240 a0: c0 7f andi r28, 0xF0 ; 240
b8: 8f 70 andi r24, 0x0F ; 15 a2: 8f 70 andi r24, 0x0F ; 15
ba: 8c 2b or r24, r28 a4: 8c 2b or r24, r28
bc: 88 bb out 0x18, r24 ; 24 a6: 88 bb out 0x18, r24 ; 24
lcd_dataport=lcd_dataport&~lcd_dataport_mask|zeichen&lcd_dataport_mask; lcd_dataport=lcd_dataport&~lcd_dataport_mask|zeichen&lcd_dataport_mask;
be: 88 b3 in r24, 0x18 ; 24 a8: 88 b3 in r24, 0x18 ; 24
c0: 8f 70 andi r24, 0x0F ; 15 aa: 8f 70 andi r24, 0x0F ; 15
c2: c8 2b or r28, r24 ac: c8 2b or r28, r24
c4: c8 bb out 0x18, r28 ; 24 ae: c8 bb out 0x18, r28 ; 24
unset_lcd_E; unset_lcd_E;
c6: 92 98 cbi 0x12, 2 ; 18 b0: 92 98 cbi 0x12, 2 ; 18
unset_lcd_E; unset_lcd_E;
c8: 92 98 cbi 0x12, 2 ; 18 b2: 92 98 cbi 0x12, 2 ; 18
wait_100us(); wait_100us();
ca: 26 d0 rcall .+76 ; 0x118 <wait_100us> b4: 26 d0 rcall .+76 ; 0x102 <wait_100us>
} }
} }
cc: cf 91 pop r28 b6: cf 91 pop r28
ce: 08 95 ret b8: 08 95 ret
000000d0 <lcd_instruct>: 000000ba <lcd_instruct>:
lcd_5ms(); lcd_5ms();
} }
} }
void lcd_instruct(uint8_t zeichen){ void lcd_instruct(uint8_t zeichen){
lcd_write(instruct,zeichen,0); lcd_write(instruct,zeichen,0);
d0: 40 e0 ldi r20, 0x00 ; 0 ba: 40 e0 ldi r20, 0x00 ; 0
d2: 68 2f mov r22, r24 bc: 68 2f mov r22, r24
d4: 84 e0 ldi r24, 0x04 ; 4 be: 84 e0 ldi r24, 0x04 ; 4
d6: c2 df rcall .-124 ; 0x5c <lcd_write> c0: c2 df rcall .-124 ; 0x46 <lcd_write>
d8: 08 95 ret c2: 08 95 ret
000000da <lcd_init>: 000000c4 <lcd_init>:
void lcd_init(void){ void lcd_init(void){
/* setting up ports first */ /* setting up ports first */
lcd_dataport_DDR=0xff; lcd_dataport_DDR=0xff;
da: 8f ef ldi r24, 0xFF ; 255 c4: 8f ef ldi r24, 0xFF ; 255
dc: 87 bb out 0x17, r24 ; 23 c6: 87 bb out 0x17, r24 ; 23
set_lcd_RS_DDR; set_lcd_RS_DDR;
de: 8b 9a sbi 0x11, 3 ; 17 c8: 8b 9a sbi 0x11, 3 ; 17
set_lcd_E_DDR; set_lcd_E_DDR;
e0: 8a 9a sbi 0x11, 2 ; 17 ca: 8a 9a sbi 0x11, 2 ; 17
/* end setting up ports */ /* end setting up ports */
lcd_dataport=0xff; lcd_dataport=0xff;
e2: 88 bb out 0x18, r24 ; 24 cc: 88 bb out 0x18, r24 ; 24
set_lcd_RS; set_lcd_RS;
e4: 93 9a sbi 0x12, 3 ; 18 ce: 93 9a sbi 0x12, 3 ; 18
set_lcd_E; set_lcd_E;
e6: 92 9a sbi 0x12, 2 ; 18 d0: 92 9a sbi 0x12, 2 ; 18
lcd_5ms(); lcd_5ms();
e8: b2 df rcall .-156 ; 0x4e <lcd_5ms> d2: b2 df rcall .-156 ; 0x38 <lcd_5ms>
lcd_5ms(); lcd_5ms();
ea: b1 df rcall .-158 ; 0x4e <lcd_5ms> d4: b1 df rcall .-158 ; 0x38 <lcd_5ms>
lcd_5ms(); lcd_5ms();
ec: b0 df rcall .-160 ; 0x4e <lcd_5ms> d6: b0 df rcall .-160 ; 0x38 <lcd_5ms>
lcd_instruct(lcd_SET_FUNCTION_8BIT); lcd_instruct(lcd_SET_FUNCTION_8BIT);
ee: 80 e3 ldi r24, 0x30 ; 48 d8: 80 e3 ldi r24, 0x30 ; 48
f0: ef df rcall .-34 ; 0xd0 <lcd_instruct> da: ef df rcall .-34 ; 0xba <lcd_instruct>
lcd_5ms(); lcd_5ms();
f2: ad df rcall .-166 ; 0x4e <lcd_5ms> dc: ad df rcall .-166 ; 0x38 <lcd_5ms>
lcd_instruct(lcd_SET_FUNCTION_8BIT); lcd_instruct(lcd_SET_FUNCTION_8BIT);
f4: 80 e3 ldi r24, 0x30 ; 48 de: 80 e3 ldi r24, 0x30 ; 48
f6: ec df rcall .-40 ; 0xd0 <lcd_instruct> e0: ec df rcall .-40 ; 0xba <lcd_instruct>
wait_100us(); wait_100us();
f8: 0f d0 rcall .+30 ; 0x118 <wait_100us> e2: 0f d0 rcall .+30 ; 0x102 <wait_100us>
lcd_instruct(lcd_SET_FUNCTION_8BIT); lcd_instruct(lcd_SET_FUNCTION_8BIT);
fa: 80 e3 ldi r24, 0x30 ; 48 e4: 80 e3 ldi r24, 0x30 ; 48
fc: e9 df rcall .-46 ; 0xd0 <lcd_instruct> e6: e9 df rcall .-46 ; 0xba <lcd_instruct>
if (lcd_dataport_mask==0xf0){ if (lcd_dataport_mask==0xf0){
lcd_instruct(lcd_SET_FUNCTION_4BIT|lcd_SET_FUNCTION_2LINE|lcd_SET_FUNCTION_7X5); lcd_instruct(lcd_SET_FUNCTION_4BIT|lcd_SET_FUNCTION_2LINE|lcd_SET_FUNCTION_7X5);
fe: 88 e2 ldi r24, 0x28 ; 40 e8: 88 e2 ldi r24, 0x28 ; 40
100: e7 df rcall .-50 ; 0xd0 <lcd_instruct> ea: e7 df rcall .-50 ; 0xba <lcd_instruct>
}else{ }else{
lcd_instruct(lcd_SET_FUNCTION_8BIT|lcd_SET_FUNCTION_2LINE|lcd_SET_FUNCTION_7X5); lcd_instruct(lcd_SET_FUNCTION_8BIT|lcd_SET_FUNCTION_2LINE|lcd_SET_FUNCTION_7X5);
} }
lcd_dataport_DDR&=lcd_dataport_mask; lcd_dataport_DDR&=lcd_dataport_mask;
102: 87 b3 in r24, 0x17 ; 23 ec: 87 b3 in r24, 0x17 ; 23
104: 80 7f andi r24, 0xF0 ; 240 ee: 80 7f andi r24, 0xF0 ; 240
106: 87 bb out 0x17, r24 ; 23 f0: 87 bb out 0x17, r24 ; 23
lcd_instruct(lcd_DISPLAY_OO_ON|lcd_DISPLAY_OO_CURSOR_OFF); lcd_instruct(lcd_DISPLAY_OO_ON|lcd_DISPLAY_OO_CURSOR_OFF);
108: 8c e0 ldi r24, 0x0C ; 12 f2: 8c e0 ldi r24, 0x0C ; 12
10a: e2 df rcall .-60 ; 0xd0 <lcd_instruct> f4: e2 df rcall .-60 ; 0xba <lcd_instruct>
lcd_instruct(lcd_ENTRY_MODE_SET|lcd_ENTRY_MODE_SET_INCREASE | lcd_ENTRY_MS_DISPLAY_NOT_S); lcd_instruct(lcd_ENTRY_MODE_SET|lcd_ENTRY_MODE_SET_INCREASE | lcd_ENTRY_MS_DISPLAY_NOT_S);
10c: 86 e0 ldi r24, 0x06 ; 6 f6: 86 e0 ldi r24, 0x06 ; 6
10e: e0 df rcall .-64 ; 0xd0 <lcd_instruct> f8: e0 df rcall .-64 ; 0xba <lcd_instruct>
lcd_instruct(lcd_RETURN_HOME); lcd_instruct(lcd_RETURN_HOME);
110: 82 e0 ldi r24, 0x02 ; 2 fa: 82 e0 ldi r24, 0x02 ; 2
112: de df rcall .-68 ; 0xd0 <lcd_instruct> fc: de df rcall .-68 ; 0xba <lcd_instruct>
lcd_5ms(); lcd_5ms();
114: 9c df rcall .-200 ; 0x4e <lcd_5ms> fe: 9c df rcall .-200 ; 0x38 <lcd_5ms>
116: 08 95 ret 100: 08 95 ret
00000118 <wait_100us>: 00000102 <wait_100us>:
#include <inttypes.h> #include <inttypes.h>
#include <avr/io.h> #include <avr/io.h>
#include "lcd4.h" #include "lcd4.h"
void wait_100us(void){ void wait_100us(void){
118: cf 93 push r28 102: cf 93 push r28
11a: df 93 push r29 104: df 93 push r29
11c: 1f 92 push r1 106: 1f 92 push r1
11e: cd b7 in r28, 0x3d ; 61 108: cd b7 in r28, 0x3d ; 61
120: dd 27 eor r29, r29 10a: dd 27 eor r29, r29
for (volatile uint8_t i=68;i--;i>0){ for (volatile uint8_t i=68;i--;i>0){
122: 84 e4 ldi r24, 0x44 ; 68 10c: 84 e4 ldi r24, 0x44 ; 68
124: 89 83 std Y+1, r24 ; 0x01 10e: 89 83 std Y+1, r24 ; 0x01
126: 89 81 ldd r24, Y+1 ; 0x01 110: 89 81 ldd r24, Y+1 ; 0x01
128: 9f ef ldi r25, 0xFF ; 255 112: 9f ef ldi r25, 0xFF ; 255
12a: 98 0f add r25, r24 114: 98 0f add r25, r24
12c: 99 83 std Y+1, r25 ; 0x01 116: 99 83 std Y+1, r25 ; 0x01
12e: 88 23 and r24, r24 118: 88 23 and r24, r24
130: 41 f0 breq .+16 ; 0x142 <wait_100us+0x2a> 11a: 41 f0 breq .+16 ; 0x12c <wait_100us+0x2a>
i; i;
132: 89 81 ldd r24, Y+1 ; 0x01 11c: 89 81 ldd r24, Y+1 ; 0x01
#include <inttypes.h> #include <inttypes.h>
#include <avr/io.h> #include <avr/io.h>
#include "lcd4.h" #include "lcd4.h"
void wait_100us(void){ void wait_100us(void){
for (volatile uint8_t i=68;i--;i>0){ for (volatile uint8_t i=68;i--;i>0){
134: 89 81 ldd r24, Y+1 ; 0x01 11e: 89 81 ldd r24, Y+1 ; 0x01
136: 89 81 ldd r24, Y+1 ; 0x01 120: 89 81 ldd r24, Y+1 ; 0x01
138: 9f ef ldi r25, 0xFF ; 255 122: 9f ef ldi r25, 0xFF ; 255
13a: 98 0f add r25, r24 124: 98 0f add r25, r24
13c: 99 83 std Y+1, r25 ; 0x01 126: 99 83 std Y+1, r25 ; 0x01
13e: 81 11 cpse r24, r1 128: 81 11 cpse r24, r1
140: f8 cf rjmp .-16 ; 0x132 <wait_100us+0x1a> 12a: f8 cf rjmp .-16 ; 0x11c <wait_100us+0x1a>
i; i;
} }
} }
142: 0f 90 pop r0 12c: 0f 90 pop r0
144: df 91 pop r29 12e: df 91 pop r29
146: cf 91 pop r28 130: cf 91 pop r28
148: 08 95 ret 132: 08 95 ret
0000014a <main>: 00000134 <main>:
#include "lcd4.h" #include "lcd4.h"
int main(void) int main(void)
{ {
DDRB = 0xff; DDRB = 0xff;
14a: 8f ef ldi r24, 0xFF ; 255 134: 8f ef ldi r24, 0xFF ; 255
14c: 87 bb out 0x17, r24 ; 23 136: 87 bb out 0x17, r24 ; 23
PORTB = 0xAA; PORTB = 0xAA;
14e: 8a ea ldi r24, 0xAA ; 170 138: 8a ea ldi r24, 0xAA ; 170
150: 88 bb out 0x18, r24 ; 24 13a: 88 bb out 0x18, r24 ; 24
lcd_init(); lcd_init();
152: c3 df rcall .-122 ; 0xda <lcd_init> 13c: c3 df rcall .-122 ; 0xc4 <lcd_init>
lcd_write(here, "t", 0); lcd_write(here, 0x41, 0);
154: 40 e0 ldi r20, 0x00 ; 0 13e: 40 e0 ldi r20, 0x00 ; 0
156: 60 e6 ldi r22, 0x60 ; 96 140: 61 e4 ldi r22, 0x41 ; 65
158: 70 e0 ldi r23, 0x00 ; 0 142: 80 e0 ldi r24, 0x00 ; 0
15a: 80 e0 ldi r24, 0x00 ; 0 144: 80 df rcall .-256 ; 0x46 <lcd_write>
15c: 7f df rcall .-258 ; 0x5c <lcd_write> 146: ff cf rjmp .-2 ; 0x146 <main+0x12>
15e: ff cf rjmp .-2 ; 0x15e <main+0x14>
00000160 <_exit>: 00000148 <_exit>:
160: f8 94 cli 148: f8 94 cli
00000162 <__stop_program>: 0000014a <__stop_program>:
162: ff cf rjmp .-2 ; 0x162 <__stop_program> 14a: ff cf rjmp .-2 ; 0x14a <__stop_program>

View file

@ -2,8 +2,6 @@ Archive member included to satisfy reference by file (symbol)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_exit.o) c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_exit.o)
C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATtiny_DFP/1.3.172/gcc/dev/attiny2313a/avr25/tiny-stack/crtattiny2313a.o (exit) C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATtiny_DFP/1.3.172/gcc/dev/attiny2313a/avr25/tiny-stack/crtattiny2313a.o (exit)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_copy_data.o)
main.o (__do_copy_data)
Discarded input sections Discarded input sections
@ -37,22 +35,6 @@ Discarded input sections
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_exit.o) 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_exit.o)
.text.libgcc.fixed .text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_exit.o) 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_exit.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_copy_data.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_copy_data.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_copy_data.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_copy_data.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_copy_data.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_copy_data.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_copy_data.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_copy_data.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\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/5.4.0/avr25/tiny-stack\libgcc.a(_copy_data.o)
Memory Configuration Memory Configuration
@ -179,7 +161,7 @@ END GROUP
.rela.plt .rela.plt
*(.rela.plt) *(.rela.plt)
.text 0x00000000 0x164 .text 0x00000000 0x14c
*(.vectors) *(.vectors)
.vectors 0x00000000 0x2a C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATtiny_DFP/1.3.172/gcc/dev/attiny2313a/avr25/tiny-stack/crtattiny2313a.o .vectors 0x00000000 0x2a C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATtiny_DFP/1.3.172/gcc/dev/attiny2313a/avr25/tiny-stack/crtattiny2313a.o
0x00000000 __vector_default 0x00000000 __vector_default
@ -220,8 +202,6 @@ END GROUP
*(.init3) *(.init3)
*(.init3) *(.init3)
*(.init4) *(.init4)
.init4 0x00000032 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_copy_data.o)
0x00000032 __do_copy_data
*(.init4) *(.init4)
*(.init5) *(.init5)
*(.init5) *(.init5)
@ -232,54 +212,54 @@ END GROUP
*(.init8) *(.init8)
*(.init8) *(.init8)
*(.init9) *(.init9)
.init9 0x00000048 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATtiny_DFP/1.3.172/gcc/dev/attiny2313a/avr25/tiny-stack/crtattiny2313a.o .init9 0x00000032 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATtiny_DFP/1.3.172/gcc/dev/attiny2313a/avr25/tiny-stack/crtattiny2313a.o
*(.init9) *(.init9)
*(.text) *(.text)
.text 0x0000004c 0x2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATtiny_DFP/1.3.172/gcc/dev/attiny2313a/avr25/tiny-stack/crtattiny2313a.o .text 0x00000036 0x2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATtiny_DFP/1.3.172/gcc/dev/attiny2313a/avr25/tiny-stack/crtattiny2313a.o
0x0000004c __vector_1 0x00000036 __vector_1
0x0000004c __vector_12 0x00000036 __vector_12
0x0000004c __bad_interrupt 0x00000036 __bad_interrupt
0x0000004c __vector_6 0x00000036 __vector_6
0x0000004c __vector_3 0x00000036 __vector_3
0x0000004c __vector_11 0x00000036 __vector_11
0x0000004c __vector_13 0x00000036 __vector_13
0x0000004c __vector_17 0x00000036 __vector_17
0x0000004c __vector_19 0x00000036 __vector_19
0x0000004c __vector_7 0x00000036 __vector_7
0x0000004c __vector_5 0x00000036 __vector_5
0x0000004c __vector_4 0x00000036 __vector_4
0x0000004c __vector_9 0x00000036 __vector_9
0x0000004c __vector_2 0x00000036 __vector_2
0x0000004c __vector_15 0x00000036 __vector_15
0x0000004c __vector_8 0x00000036 __vector_8
0x0000004c __vector_14 0x00000036 __vector_14
0x0000004c __vector_10 0x00000036 __vector_10
0x0000004c __vector_16 0x00000036 __vector_16
0x0000004c __vector_18 0x00000036 __vector_18
0x0000004c __vector_20 0x00000036 __vector_20
0x0000004e . = ALIGN (0x2) 0x00000038 . = ALIGN (0x2)
*(.text.*) *(.text.*)
.text.lcd_5ms 0x0000004e 0xe lcd4.o .text.lcd_5ms 0x00000038 0xe lcd4.o
0x0000004e lcd_5ms 0x00000038 lcd_5ms
.text.lcd_write .text.lcd_write
0x0000005c 0x74 lcd4.o 0x00000046 0x74 lcd4.o
0x0000005c lcd_write 0x00000046 lcd_write
.text.lcd_instruct .text.lcd_instruct
0x000000d0 0xa lcd4.o 0x000000ba 0xa lcd4.o
0x000000d0 lcd_instruct 0x000000ba lcd_instruct
.text.lcd_init .text.lcd_init
0x000000da 0x3e lcd4.o 0x000000c4 0x3e lcd4.o
0x000000da lcd_init 0x000000c4 lcd_init
.text.wait_100us .text.wait_100us
0x00000118 0x32 lcd_wait.o 0x00000102 0x32 lcd_wait.o
0x00000118 wait_100us 0x00000102 wait_100us
.text.main 0x0000014a 0x16 main.o .text.main 0x00000134 0x14 main.o
0x0000014a main 0x00000134 main
0x00000160 . = ALIGN (0x2) 0x00000148 . = ALIGN (0x2)
*(.fini9) *(.fini9)
.fini9 0x00000160 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_exit.o) .fini9 0x00000148 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_exit.o)
0x00000160 _exit 0x00000148 _exit
0x00000160 exit 0x00000148 exit
*(.fini9) *(.fini9)
*(.fini8) *(.fini8)
*(.fini8) *(.fini8)
@ -298,38 +278,36 @@ END GROUP
*(.fini1) *(.fini1)
*(.fini1) *(.fini1)
*(.fini0) *(.fini0)
.fini0 0x00000160 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_exit.o) .fini0 0x00000148 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr25/tiny-stack\libgcc.a(_exit.o)
*(.fini0) *(.fini0)
0x00000164 _etext = . 0x0000014c _etext = .
.data 0x00800060 0x2 load address 0x00000164 .data 0x00800060 0x0 load address 0x0000014c
0x00800060 PROVIDE (__data_start, .) [!provide] PROVIDE (__data_start, .)
*(.data) *(.data)
*(.data*) *(.data*)
*(.gnu.linkonce.d*) *(.gnu.linkonce.d*)
*(.rodata) *(.rodata)
*(.rodata*) *(.rodata*)
.rodata.str1.1
0x00800060 0x2 main.o
*(.gnu.linkonce.r*) *(.gnu.linkonce.r*)
0x00800062 . = ALIGN (0x2) 0x00800060 . = ALIGN (0x2)
0x00800062 _edata = . 0x00800060 _edata = .
0x00800062 PROVIDE (__data_end, .) [!provide] PROVIDE (__data_end, .)
.bss 0x00800062 0x0 .bss 0x00800060 0x0
[!provide] PROVIDE (__bss_start, .) [!provide] PROVIDE (__bss_start, .)
*(.bss) *(.bss)
*(.bss*) *(.bss*)
*(COMMON) *(COMMON)
[!provide] PROVIDE (__bss_end, .) [!provide] PROVIDE (__bss_end, .)
0x00000164 __data_load_start = LOADADDR (.data) 0x0000014c __data_load_start = LOADADDR (.data)
0x00000166 __data_load_end = (__data_load_start + SIZEOF (.data)) 0x0000014c __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x00800062 0x0 .noinit 0x00800060 0x0
[!provide] PROVIDE (__noinit_start, .) [!provide] PROVIDE (__noinit_start, .)
*(.noinit*) *(.noinit*)
[!provide] PROVIDE (__noinit_end, .) [!provide] PROVIDE (__noinit_end, .)
0x00800062 _end = . 0x00800060 _end = .
[!provide] PROVIDE (__heap_start, .) [!provide] PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0 .eeprom 0x00810000 0x0
@ -408,12 +386,12 @@ END GROUP
.debug_pubnames .debug_pubnames
*(.debug_pubnames) *(.debug_pubnames)
.debug_info 0x00000000 0x90f .debug_info 0x00000000 0x915
*(.debug_info .gnu.linkonce.wi.*) *(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x00000000 0x456 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATtiny_DFP/1.3.172/gcc/dev/attiny2313a/avr25/tiny-stack/crtattiny2313a.o .debug_info 0x00000000 0x456 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATtiny_DFP/1.3.172/gcc/dev/attiny2313a/avr25/tiny-stack/crtattiny2313a.o
.debug_info 0x00000456 0x31d lcd4.o .debug_info 0x00000456 0x31d lcd4.o
.debug_info 0x00000773 0xa3 lcd_wait.o .debug_info 0x00000773 0xa3 lcd_wait.o
.debug_info 0x00000816 0xf9 main.o .debug_info 0x00000816 0xff main.o
.debug_abbrev 0x00000000 0x631 .debug_abbrev 0x00000000 0x631
*(.debug_abbrev) *(.debug_abbrev)

View file

@ -1,26 +1,23 @@
S01A0000417454696E795F616C61726D5F636C6F636B2E73726563DA S01A0000417454696E795F616C61726D5F636C6F636B2E73726563DA
S113000014C024C023C022C021C020C01FC01EC0F1 S113000014C019C018C017C016C015C014C013C03E
S11300101DC01CC01BC01AC019C018C017C016C010 S113001012C011C010C00FC00EC00DC00CC00BC068
S113002015C014C013C012C011C011241FBECFEDDF S11300200AC009C008C007C006C011241FBECFED16
S1130030CDBF10E0A0E6B0E0E4E6F1E002C0059038 S1130030CDBF80D089C0E4CFCF93C2E362D0C1509A
S11300400D92A236B107D9F780D08AC0D9CFCF9309 S1130040E9F7CF910895CF93C62F843038F48230E6
S1130050C2E362D0C150E9F7CF910895CF93C62F80 S113005048F4882371F0813049F00CC0843051F4A5
S1130060843038F4823048F4882371F0813049F0C8 S1130060939808C04F73833009F4405C842F8068F0
S11300700CC0843051F4939808C04F73833009F452 S113007024D0939A929A929A98B39F708C2F807FEF
S1130080405C842F806824D0939A929A929A98B371 S1130080982B98BB98B39F70892B88BB92989298B1
S11300909F708C2F807F982B98BB98B39F70892B6F S113009038D087B3803F79F4929A929A88B3C29504
S11300A088BB9298929838D087B3803F79F4929A1B S11300A0C07F8F708C2B88BB88B38F70C82BC8BB64
S11300B0929A88B3C295C07F8F708C2B88BB88B30B S11300B09298929826D0CF91089540E0682F84E0DA
S11300C08F70C82BC8BB9298929826D0CF91089570 S11300C0C2DF08958FEF87BB8B9A8A9A88BB939A75
S11300D040E0682F84E0C2DF08958FEF87BB8B9ADE S11300D0929AB2DFB1DFB0DF80E3EFDFADDF80E320
S11300E08A9A88BB939A929AB2DFB1DFB0DF80E339 S11300E0ECDF0FD080E3E9DF88E2E7DF87B3807FCE
S11300F0EFDFADDF80E3ECDF0FD080E3E9DF88E200 S11300F087BB8CE0E2DF86E0E0DF82E0DEDF9CDFCE
S1130100E7DF87B3807F87BB8CE0E2DF86E0E0DF58 S11301000895CF93DF931F92CDB7DD2784E48983CD
S113011082E0DEDF9CDF0895CF93DF931F92CDB79B S113011089819FEF980F9983882341F08981898190
S1130120DD2784E4898389819FEF980F998388234D S113012089819FEF980F99838111F8CF0F90DF9108
S113013041F08981898189819FEF980F9983811189 S1130130CF9108958FEF87BB8AEA88BBC3DF40E085
S1130140F8CF0F90DF91CF9108958FEF87BB8AEAA4 S10F014061E480E080DFFFCFF894FFCF83
S113015088BBC3DF40E060E670E080E07FDFFFCF74
S1070160F894FFCF3D
S1050164740021
S9030000FC S9030000FC

Binary file not shown.

2
main.c
View file

@ -14,7 +14,7 @@ int main(void)
DDRB = 0xff; DDRB = 0xff;
PORTB = 0xAA; PORTB = 0xAA;
lcd_init(); lcd_init();
lcd_write(here, "t", 0); lcd_write(here, 0x41, 0);
/* Replace with your application code */ /* Replace with your application code */
while (1) while (1)
{ {