GLCD driver begin

This commit is contained in:
Guilliam Lutz
2021-03-31 10:20:42 +02:00
parent 59c547a2cd
commit fcffefbb7e
88 changed files with 9371 additions and 95 deletions

View File

@@ -0,0 +1 @@
:00000001FF

Binary file not shown.

View File

@@ -0,0 +1,20 @@
:1000000045C000004BC0000049C0000047C00000D0
:1000100045C0000043C0000041C000003FC00000D8
:100020003DC000003BC0000039C0000037C00000E8
:1000300035C0000033C0000031C000002FC00000F8
:100040002DC000002BC0000029C0000027C0000008
:1000500025C0000023C0000021C000001FC0000018
:100060001DC000001BC0000019C0000017C0000028
:1000700015C0000013C0000011C000000FC0000038
:100080000DC000000BC0000009C0000011241FBEFD
:10009000CFEFD0E1DEBFCDBF40D048C0B1CF20E030
:1000A00030E008C0E3ECF9E03197F1F700C0000060
:1000B0002F5F3F4F28173907ACF3089588B380624C
:1000C00088BB81E28A95F1F7000088B38F7D88BBF9
:1000D00081E28A95F1F70000089588B38E7F88BB8E
:1000E00088B38D7F88BB88B38B7F88BB88B3877FBD
:1000F00088BB8FE385BBE2CF089588B38E7F88BB32
:1001000088B38D7F88BB88B38B7F88BB88B3877F9C
:1001100088BB8EE385BBD2CF0895DFDF80ED97E00B
:10012000BEDFEBDF80ED97E0BADFF7CFF894FFCFCB
:00000001FF

View File

@@ -0,0 +1,270 @@
GLCD.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000000 00800100 00800100 00000184 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 00000130 00000000 00000000 00000054 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .comment 00000030 00000000 00000000 00000184 2**0
CONTENTS, READONLY
3 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 000001b4 2**2
CONTENTS, READONLY
4 .debug_aranges 00000040 00000000 00000000 000001f0 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_info 00000a18 00000000 00000000 00000230 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 00000882 00000000 00000000 00000c48 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 00000369 00000000 00000000 000014ca 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_frame 00000064 00000000 00000000 00001834 2**2
CONTENTS, READONLY, DEBUGGING
9 .debug_str 00000463 00000000 00000000 00001898 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_loc 000000f4 00000000 00000000 00001cfb 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_ranges 00000030 00000000 00000000 00001def 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 45 c0 rjmp .+138 ; 0x8c <__ctors_end>
2: 00 00 nop
4: 4b c0 rjmp .+150 ; 0x9c <__bad_interrupt>
6: 00 00 nop
8: 49 c0 rjmp .+146 ; 0x9c <__bad_interrupt>
a: 00 00 nop
c: 47 c0 rjmp .+142 ; 0x9c <__bad_interrupt>
e: 00 00 nop
10: 45 c0 rjmp .+138 ; 0x9c <__bad_interrupt>
12: 00 00 nop
14: 43 c0 rjmp .+134 ; 0x9c <__bad_interrupt>
16: 00 00 nop
18: 41 c0 rjmp .+130 ; 0x9c <__bad_interrupt>
1a: 00 00 nop
1c: 3f c0 rjmp .+126 ; 0x9c <__bad_interrupt>
1e: 00 00 nop
20: 3d c0 rjmp .+122 ; 0x9c <__bad_interrupt>
22: 00 00 nop
24: 3b c0 rjmp .+118 ; 0x9c <__bad_interrupt>
26: 00 00 nop
28: 39 c0 rjmp .+114 ; 0x9c <__bad_interrupt>
2a: 00 00 nop
2c: 37 c0 rjmp .+110 ; 0x9c <__bad_interrupt>
2e: 00 00 nop
30: 35 c0 rjmp .+106 ; 0x9c <__bad_interrupt>
32: 00 00 nop
34: 33 c0 rjmp .+102 ; 0x9c <__bad_interrupt>
36: 00 00 nop
38: 31 c0 rjmp .+98 ; 0x9c <__bad_interrupt>
3a: 00 00 nop
3c: 2f c0 rjmp .+94 ; 0x9c <__bad_interrupt>
3e: 00 00 nop
40: 2d c0 rjmp .+90 ; 0x9c <__bad_interrupt>
42: 00 00 nop
44: 2b c0 rjmp .+86 ; 0x9c <__bad_interrupt>
46: 00 00 nop
48: 29 c0 rjmp .+82 ; 0x9c <__bad_interrupt>
4a: 00 00 nop
4c: 27 c0 rjmp .+78 ; 0x9c <__bad_interrupt>
4e: 00 00 nop
50: 25 c0 rjmp .+74 ; 0x9c <__bad_interrupt>
52: 00 00 nop
54: 23 c0 rjmp .+70 ; 0x9c <__bad_interrupt>
56: 00 00 nop
58: 21 c0 rjmp .+66 ; 0x9c <__bad_interrupt>
5a: 00 00 nop
5c: 1f c0 rjmp .+62 ; 0x9c <__bad_interrupt>
5e: 00 00 nop
60: 1d c0 rjmp .+58 ; 0x9c <__bad_interrupt>
62: 00 00 nop
64: 1b c0 rjmp .+54 ; 0x9c <__bad_interrupt>
66: 00 00 nop
68: 19 c0 rjmp .+50 ; 0x9c <__bad_interrupt>
6a: 00 00 nop
6c: 17 c0 rjmp .+46 ; 0x9c <__bad_interrupt>
6e: 00 00 nop
70: 15 c0 rjmp .+42 ; 0x9c <__bad_interrupt>
72: 00 00 nop
74: 13 c0 rjmp .+38 ; 0x9c <__bad_interrupt>
76: 00 00 nop
78: 11 c0 rjmp .+34 ; 0x9c <__bad_interrupt>
7a: 00 00 nop
7c: 0f c0 rjmp .+30 ; 0x9c <__bad_interrupt>
7e: 00 00 nop
80: 0d c0 rjmp .+26 ; 0x9c <__bad_interrupt>
82: 00 00 nop
84: 0b c0 rjmp .+22 ; 0x9c <__bad_interrupt>
86: 00 00 nop
88: 09 c0 rjmp .+18 ; 0x9c <__bad_interrupt>
...
0000008c <__ctors_end>:
8c: 11 24 eor r1, r1
8e: 1f be out 0x3f, r1 ; 63
90: cf ef ldi r28, 0xFF ; 255
92: d0 e1 ldi r29, 0x10 ; 16
94: de bf out 0x3e, r29 ; 62
96: cd bf out 0x3d, r28 ; 61
98: 40 d0 rcall .+128 ; 0x11a <main>
9a: 48 c0 rjmp .+144 ; 0x12c <_exit>
0000009c <__bad_interrupt>:
9c: b1 cf rjmp .-158 ; 0x0 <__vectors>
0000009e <wait>:
//is active low (refer to datasheet)
void wait( int ms )
{
for (int i=0; i<ms; i++)
9e: 20 e0 ldi r18, 0x00 ; 0
a0: 30 e0 ldi r19, 0x00 ; 0
a2: 08 c0 rjmp .+16 ; 0xb4 <wait+0x16>
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif
__builtin_avr_delay_cycles(__ticks_dc);
a4: e3 ec ldi r30, 0xC3 ; 195
a6: f9 e0 ldi r31, 0x09 ; 9
a8: 31 97 sbiw r30, 0x01 ; 1
aa: f1 f7 brne .-4 ; 0xa8 <wait+0xa>
ac: 00 c0 rjmp .+0 ; 0xae <wait+0x10>
ae: 00 00 nop
b0: 2f 5f subi r18, 0xFF ; 255
b2: 3f 4f sbci r19, 0xFF ; 255
b4: 28 17 cp r18, r24
b6: 39 07 cpc r19, r25
b8: ac f3 brlt .-22 ; 0xa4 <wait+0x6>
{
_delay_ms( 1 ); // library function (max 30 ms at 8MHz)
}
}
ba: 08 95 ret
000000bc <trigger>:
void trigger()
{
CONTROLPORT |= GLCD_EN; //EN high
bc: 88 b3 in r24, 0x18 ; 24
be: 80 62 ori r24, 0x20 ; 32
c0: 88 bb out 0x18, r24 ; 24
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif
__builtin_avr_delay_cycles(__ticks_dc);
c2: 81 e2 ldi r24, 0x21 ; 33
c4: 8a 95 dec r24
c6: f1 f7 brne .-4 ; 0xc4 <trigger+0x8>
c8: 00 00 nop
_delay_us(E_DELAY);
CONTROLPORT &= ~GLCD_EN; //EN low
ca: 88 b3 in r24, 0x18 ; 24
cc: 8f 7d andi r24, 0xDF ; 223
ce: 88 bb out 0x18, r24 ; 24
d0: 81 e2 ldi r24, 0x21 ; 33
d2: 8a 95 dec r24
d4: f1 f7 brne .-4 ; 0xd2 <trigger+0x16>
d6: 00 00 nop
d8: 08 95 ret
000000da <glcd_on>:
}
//----------------------
void glcd_on()
{
#ifdef GLCD_CS_ACTIVE_LOW
CONTROLPORT &= ~CS1; //Activate both chips
da: 88 b3 in r24, 0x18 ; 24
dc: 8e 7f andi r24, 0xFE ; 254
de: 88 bb out 0x18, r24 ; 24
CONTROLPORT &= ~CS2;
e0: 88 b3 in r24, 0x18 ; 24
e2: 8d 7f andi r24, 0xFD ; 253
e4: 88 bb out 0x18, r24 ; 24
#else
CONTROLPORT |= CS1; //Activate both chips
CONTROLPORT |= CS2;
#endif
CONTROLPORT &= ~GLCD_RS; //RS low --> command
e6: 88 b3 in r24, 0x18 ; 24
e8: 8b 7f andi r24, 0xFB ; 251
ea: 88 bb out 0x18, r24 ; 24
CONTROLPORT &= ~GLCD_RW; //RW low --> write
ec: 88 b3 in r24, 0x18 ; 24
ee: 87 7f andi r24, 0xF7 ; 247
f0: 88 bb out 0x18, r24 ; 24
DATAPORT = 0x3F; //ON command
f2: 8f e3 ldi r24, 0x3F ; 63
f4: 85 bb out 0x15, r24 ; 21
trigger();
f6: e2 cf rjmp .-60 ; 0xbc <trigger>
f8: 08 95 ret
000000fa <glcd_off>:
}
//----------------------
void glcd_off()
{
#ifdef GLCD_CS_ACTIVE_LOW
CONTROLPORT &= ~CS1; //Activate both chips
fa: 88 b3 in r24, 0x18 ; 24
fc: 8e 7f andi r24, 0xFE ; 254
fe: 88 bb out 0x18, r24 ; 24
CONTROLPORT &= ~CS2;
100: 88 b3 in r24, 0x18 ; 24
102: 8d 7f andi r24, 0xFD ; 253
104: 88 bb out 0x18, r24 ; 24
#else
CONTROLPORT |= CS1; //Activate both chips
CONTROLPORT |= CS2;
#endif
CONTROLPORT &= ~GLCD_RS; //DI low --> command
106: 88 b3 in r24, 0x18 ; 24
108: 8b 7f andi r24, 0xFB ; 251
10a: 88 bb out 0x18, r24 ; 24
CONTROLPORT &= ~GLCD_RW; //RW low --> write
10c: 88 b3 in r24, 0x18 ; 24
10e: 87 7f andi r24, 0xF7 ; 247
110: 88 bb out 0x18, r24 ; 24
DATAPORT = 0x3E; //OFF command
112: 8e e3 ldi r24, 0x3E ; 62
114: 85 bb out 0x15, r24 ; 21
trigger();
116: d2 cf rjmp .-92 ; 0xbc <trigger>
118: 08 95 ret
0000011a <main>:
int main(void)
{
while (1)
{
glcd_on();
11a: df df rcall .-66 ; 0xda <glcd_on>
wait(2000);
11c: 80 ed ldi r24, 0xD0 ; 208
11e: 97 e0 ldi r25, 0x07 ; 7
glcd_off();
120: be df rcall .-132 ; 0x9e <wait>
wait(2000);
122: eb df rcall .-42 ; 0xfa <glcd_off>
124: 80 ed ldi r24, 0xD0 ; 208
126: 97 e0 ldi r25, 0x07 ; 7
128: ba df rcall .-140 ; 0x9e <wait>
12a: f7 cf rjmp .-18 ; 0x11a <main>
0000012c <_exit>:
12c: f8 94 cli
0000012e <__stop_program>:
12e: ff cf rjmp .-2 ; 0x12e <__stop_program>

View File

@@ -0,0 +1,438 @@
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/avr51\libgcc.a(_exit.o)
C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o (exit)
Discarded input sections
.data 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o
.bss 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o
.text 0x00000000 0x0 main.o
.data 0x00000000 0x0 main.o
.bss 0x00000000 0x0 main.o
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.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/avr51\libgcc.a(_exit.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/avr51\libgcc.a(_exit.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/avr51\libgcc.a(_exit.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/avr51\libgcc.a(_exit.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/avr51\libgcc.a(_exit.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/avr51\libgcc.a(_exit.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/avr51\libgcc.a(_exit.o)
Memory Configuration
Name Origin Length Attributes
text 0x00000000 0x00020000 xr
data 0x00800100 0x00001000 rw !x
eeprom 0x00810000 0x00001000 rw !x
fuse 0x00820000 0x00000003 rw !x
lock 0x00830000 0x00000400 rw !x
signature 0x00840000 0x00000400 rw !x
user_signatures 0x00850000 0x00000400 rw !x
*default* 0x00000000 0xffffffff
Linker script and memory map
Address of section .data set to 0x800100
LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o
LOAD main.o
START GROUP
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a
END GROUP
START GROUP
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a
LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51\libatmega128.a
END GROUP
0x00000000 __TEXT_REGION_ORIGIN__ = DEFINED (__TEXT_REGION_ORIGIN__)?__TEXT_REGION_ORIGIN__:0x0
[0x00800100] __DATA_REGION_ORIGIN__ = DEFINED (__DATA_REGION_ORIGIN__)?__DATA_REGION_ORIGIN__:0x800100
[0x00020000] __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x20000
[0x00001000] __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xff00
[0x00001000] __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000
[0x00000003] __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
0x00000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400
0x00000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400
0x00000400 __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400
.hash
*(.hash)
.dynsym
*(.dynsym)
.dynstr
*(.dynstr)
.gnu.version
*(.gnu.version)
.gnu.version_d
*(.gnu.version_d)
.gnu.version_r
*(.gnu.version_r)
.rel.init
*(.rel.init)
.rela.init
*(.rela.init)
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
.rel.fini
*(.rel.fini)
.rela.fini
*(.rela.fini)
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
.rel.ctors
*(.rel.ctors)
.rela.ctors
*(.rela.ctors)
.rel.dtors
*(.rel.dtors)
.rela.dtors
*(.rela.dtors)
.rel.got
*(.rel.got)
.rela.got
*(.rela.got)
.rel.bss
*(.rel.bss)
.rela.bss
*(.rela.bss)
.rel.plt
*(.rel.plt)
.rela.plt
*(.rela.plt)
.text 0x00000000 0x130
*(.vectors)
.vectors 0x00000000 0x8c C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o
0x00000000 __vector_default
0x00000000 __vectors
*(.vectors)
*(.progmem.gcc*)
0x0000008c . = ALIGN (0x2)
0x0000008c __trampolines_start = .
*(.trampolines)
.trampolines 0x0000008c 0x0 linker stubs
*(.trampolines*)
0x0000008c __trampolines_end = .
*libprintf_flt.a:*(.progmem.data)
*libc.a:*(.progmem.data)
*(.progmem*)
0x0000008c . = ALIGN (0x2)
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x0000008c __ctors_start = .
*(.ctors)
0x0000008c __ctors_end = .
0x0000008c __dtors_start = .
*(.dtors)
0x0000008c __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x0000008c 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o
0x0000008c __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x0000008c 0xc C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x00000098 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o
*(.init9)
*(.text)
.text 0x0000009c 0x2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o
0x0000009c __vector_22
0x0000009c __vector_28
0x0000009c __vector_1
0x0000009c __vector_32
0x0000009c __vector_34
0x0000009c __vector_24
0x0000009c __vector_12
0x0000009c __bad_interrupt
0x0000009c __vector_6
0x0000009c __vector_31
0x0000009c __vector_3
0x0000009c __vector_23
0x0000009c __vector_30
0x0000009c __vector_25
0x0000009c __vector_11
0x0000009c __vector_13
0x0000009c __vector_17
0x0000009c __vector_19
0x0000009c __vector_7
0x0000009c __vector_27
0x0000009c __vector_5
0x0000009c __vector_33
0x0000009c __vector_4
0x0000009c __vector_9
0x0000009c __vector_2
0x0000009c __vector_21
0x0000009c __vector_15
0x0000009c __vector_29
0x0000009c __vector_8
0x0000009c __vector_26
0x0000009c __vector_14
0x0000009c __vector_10
0x0000009c __vector_16
0x0000009c __vector_18
0x0000009c __vector_20
0x0000009e . = ALIGN (0x2)
*(.text.*)
.text.wait 0x0000009e 0x1e main.o
0x0000009e wait
.text.trigger 0x000000bc 0x1e main.o
0x000000bc trigger
.text.glcd_on 0x000000da 0x20 main.o
0x000000da glcd_on
.text.glcd_off
0x000000fa 0x20 main.o
0x000000fa glcd_off
.text.main 0x0000011a 0x12 main.o
0x0000011a main
0x0000012c . = ALIGN (0x2)
*(.fini9)
.fini9 0x0000012c 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o)
0x0000012c _exit
0x0000012c exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x0000012c 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o)
*(.fini0)
0x00000130 _etext = .
.data 0x00800100 0x0 load address 0x00000130
[!provide] PROVIDE (__data_start, .)
*(.data)
*(.data*)
*(.gnu.linkonce.d*)
*(.rodata)
*(.rodata*)
*(.gnu.linkonce.r*)
0x00800100 . = ALIGN (0x2)
0x00800100 _edata = .
[!provide] PROVIDE (__data_end, .)
.bss 0x00800100 0x0
[!provide] PROVIDE (__bss_start, .)
*(.bss)
*(.bss*)
*(COMMON)
[!provide] PROVIDE (__bss_end, .)
0x00000130 __data_load_start = LOADADDR (.data)
0x00000130 __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x00800100 0x0
[!provide] PROVIDE (__noinit_start, .)
*(.noinit*)
[!provide] PROVIDE (__noinit_end, .)
0x00800100 _end = .
[!provide] PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0
*(.eeprom*)
0x00810000 __eeprom_end = .
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
.lock
*(.lock*)
.signature
*(.signature*)
.user_signatures
*(.user_signatures*)
.stab
*(.stab)
.stabstr
*(.stabstr)
.stab.excl
*(.stab.excl)
.stab.exclstr
*(.stab.exclstr)
.stab.index
*(.stab.index)
.stab.indexstr
*(.stab.indexstr)
.comment 0x00000000 0x30
*(.comment)
.comment 0x00000000 0x30 main.o
0x31 (size before relaxing)
.note.gnu.avr.deviceinfo
0x00000000 0x3c
.note.gnu.avr.deviceinfo
0x00000000 0x3c C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o
.note.gnu.build-id
*(.note.gnu.build-id)
.debug
*(.debug)
.line
*(.line)
.debug_srcinfo
*(.debug_srcinfo)
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x00000000 0x40
*(.debug_aranges)
.debug_aranges
0x00000000 0x40 main.o
.debug_pubnames
*(.debug_pubnames)
.debug_info 0x00000000 0xa18
*(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x00000000 0x780 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o
.debug_info 0x00000780 0x298 main.o
.debug_abbrev 0x00000000 0x882
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x718 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o
.debug_abbrev 0x00000718 0x16a main.o
.debug_line 0x00000000 0x369
*(.debug_line .debug_line.* .debug_line_end)
.debug_line 0x00000000 0x16a C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o
.debug_line 0x0000016a 0x1ff main.o
.debug_frame 0x00000000 0x64
*(.debug_frame)
.debug_frame 0x00000000 0x64 main.o
.debug_str 0x00000000 0x463
*(.debug_str)
.debug_str 0x00000000 0x27d C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o
.debug_str 0x0000027d 0x1e6 main.o
0x21a (size before relaxing)
.debug_loc 0x00000000 0xf4
*(.debug_loc)
.debug_loc 0x00000000 0xf4 main.o
.debug_macinfo
*(.debug_macinfo)
.debug_weaknames
*(.debug_weaknames)
.debug_funcnames
*(.debug_funcnames)
.debug_typenames
*(.debug_typenames)
.debug_varnames
*(.debug_varnames)
.debug_pubtypes
*(.debug_pubtypes)
.debug_ranges 0x00000000 0x30
*(.debug_ranges)
.debug_ranges 0x00000000 0x30 main.o
.debug_macro
*(.debug_macro)
OUTPUT(GLCD.elf elf32-avr)
LOAD linker stubs

View File

@@ -0,0 +1,21 @@
S00C0000474C43442E73726563FE
S113000045C000004BC0000049C0000047C00000CC
S113001045C0000043C0000041C000003FC00000D4
S11300203DC000003BC0000039C0000037C00000E4
S113003035C0000033C0000031C000002FC00000F4
S11300402DC000002BC0000029C0000027C0000004
S113005025C0000023C0000021C000001FC0000014
S11300601DC000001BC0000019C0000017C0000024
S113007015C0000013C0000011C000000FC0000034
S11300800DC000000BC0000009C0000011241FBEF9
S1130090CFEFD0E1DEBFCDBF40D048C0B1CF20E02C
S11300A030E008C0E3ECF9E03197F1F700C000005C
S11300B02F5F3F4F28173907ACF3089588B3806248
S11300C088BB81E28A95F1F7000088B38F7D88BBF5
S11300D081E28A95F1F70000089588B38E7F88BB8A
S11300E088B38D7F88BB88B38B7F88BB88B3877FB9
S11300F088BB8FE385BBE2CF089588B38E7F88BB2E
S113010088B38D7F88BB88B38B7F88BB88B3877F98
S113011088BB8EE385BBD2CF0895DFDF80ED97E007
S1130120BEDFEBDF80ED97E0BADFF7CFF894FFCFC7
S9030000FC

View File

@@ -0,0 +1,127 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
SHELL := cmd.exe
RM := rm -rf
USER_OBJS :=
LIBS :=
PROJ :=
O_SRCS :=
C_SRCS :=
S_SRCS :=
S_UPPER_SRCS :=
OBJ_SRCS :=
ASM_SRCS :=
PREPROCESSING_SRCS :=
OBJS :=
OBJS_AS_ARGS :=
C_DEPS :=
C_DEPS_AS_ARGS :=
EXECUTABLES :=
OUTPUT_FILE_PATH :=
OUTPUT_FILE_PATH_AS_ARGS :=
AVR_APP_PATH :=$$$AVR_APP_PATH$$$
QUOTE := "
ADDITIONAL_DEPENDENCIES:=
OUTPUT_FILE_DEP:=
LIB_DEP:=
LINKER_SCRIPT_DEP:=
# Every subdirectory with source files must be described here
SUBDIRS :=
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../main.c
PREPROCESSING_SRCS +=
ASM_SRCS +=
OBJS += \
main.o
OBJS_AS_ARGS += \
main.o
C_DEPS += \
main.d
C_DEPS_AS_ARGS += \
main.d
OUTPUT_FILE_PATH +=GLCD.elf
OUTPUT_FILE_PATH_AS_ARGS +=GLCD.elf
ADDITIONAL_DEPENDENCIES:=
OUTPUT_FILE_DEP:= ./makedep.mk
LIB_DEP+=
LINKER_SCRIPT_DEP+=
# AVR32/GNU C Compiler
./main.o: .././main.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include" -Og -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
@echo Finished building: $<
# AVR32/GNU Preprocessing Assembler
# AVR32/GNU Assembler
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif
# Add inputs and outputs from these tool invocations to the build variables
# All Target
all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP)
@echo Building target: $@
@echo Invoking: AVR/GNU Linker : 5.4.0
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="GLCD.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mrelax -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128"
@echo Finished building target: $@
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "GLCD.elf" "GLCD.hex"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "GLCD.elf" "GLCD.eep" || exit 0
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "GLCD.elf" > "GLCD.lss"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "GLCD.elf" "GLCD.srec"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.exe" "GLCD.elf"
# Other Targets
clean:
-$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)
-$(RM) $(C_DEPS_AS_ARGS)
rm -rf "GLCD.elf" "GLCD.a" "GLCD.hex" "GLCD.lss" "GLCD.eep" "GLCD.map" "GLCD.srec" "GLCD.usersignatures"

View File

@@ -0,0 +1,55 @@
main.d main.o: .././main.c \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include/avr/iom128.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
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\5.4.0\include\stddef.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include/avr/iom128.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:
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\5.4.0\include\stddef.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h:

Binary file not shown.

View File

@@ -0,0 +1,6 @@
################################################################################
# Automatically-generated file. Do not edit or delete the file
################################################################################
main.c

View File

@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<Store xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="AtmelPackComponentManagement">
<ProjectComponents>
<ProjectComponent z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
<CApiVersion></CApiVersion>
<CBundle></CBundle>
<CClass>Device</CClass>
<CGroup>Startup</CGroup>
<CSub></CSub>
<CVariant></CVariant>
<CVendor>Atmel</CVendor>
<CVersion>1.6.0</CVersion>
<DefaultRepoPath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs</DefaultRepoPath>
<DependentComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Description></Description>
<Files xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include\</AbsolutePath>
<Attribute></Attribute>
<Category>include</Category>
<Condition>C</Condition>
<FileContentHash i:nil="true" />
<FileVersion></FileVersion>
<Name>include/</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include\avr\iom128.h</AbsolutePath>
<Attribute></Attribute>
<Category>header</Category>
<Condition>C</Condition>
<FileContentHash>JdJ7J9I/SJh965SEyyyVYw==</FileContentHash>
<FileVersion></FileVersion>
<Name>include/avr/iom128.h</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\templates\main.c</AbsolutePath>
<Attribute>template</Attribute>
<Category>source</Category>
<Condition>C Exe</Condition>
<FileContentHash>9rrgk+6p6m7/9tgNmvxEvQ==</FileContentHash>
<FileVersion></FileVersion>
<Name>templates/main.c</Name>
<SelectString>Main file (.c)</SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\templates\main.cpp</AbsolutePath>
<Attribute>template</Attribute>
<Category>source</Category>
<Condition>C Exe</Condition>
<FileContentHash>mkKaE95TOoATsuBGv6jmxg==</FileContentHash>
<FileVersion></FileVersion>
<Name>templates/main.cpp</Name>
<SelectString>Main file (.cpp)</SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128</AbsolutePath>
<Attribute></Attribute>
<Category>libraryPrefix</Category>
<Condition>GCC</Condition>
<FileContentHash i:nil="true" />
<FileVersion></FileVersion>
<Name>gcc/dev/atmega128</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
</Files>
<PackName>ATmega_DFP</PackName>
<PackPath>C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/Atmel.ATmega_DFP.pdsc</PackPath>
<PackVersion>1.6.364</PackVersion>
<PresentInProject>true</PresentInProject>
<ReferenceConditionId>ATmega128</ReferenceConditionId>
<RteComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string></d4p1:string>
</RteComponents>
<Status>Resolved</Status>
<VersionMode>Fixed</VersionMode>
<IsComponentInAtProject>true</IsComponentInAtProject>
</ProjectComponent>
</ProjectComponents>
</Store>

View File

@@ -0,0 +1,146 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0">
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>7.0</ProjectVersion>
<ToolchainName>com.Atmel.AVRGCC8.C</ToolchainName>
<ProjectGuid>{bbfa8a24-6283-45fe-a253-1f0c6111b1f0}</ProjectGuid>
<avrdevice>ATmega128</avrdevice>
<avrdeviceseries>none</avrdeviceseries>
<OutputType>Executable</OutputType>
<Language>C</Language>
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
<OutputFileExtension>.elf</OutputFileExtension>
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
<AssemblyName>GLCD</AssemblyName>
<Name>GLCD</Name>
<RootNamespace>GLCD</RootNamespace>
<ToolchainFlavour>Native</ToolchainFlavour>
<KeepTimersRunning>true</KeepTimersRunning>
<OverrideVtor>false</OverrideVtor>
<CacheFlash>true</CacheFlash>
<ProgFlashFromRam>true</ProgFlashFromRam>
<RamSnippetAddress>0x20000000</RamSnippetAddress>
<UncachedRange />
<preserveEEPROM>true</preserveEEPROM>
<OverrideVtorValue>exception_table</OverrideVtorValue>
<BootSegment>2</BootSegment>
<ResetRule>0</ResetRule>
<eraseonlaunchrule>0</eraseonlaunchrule>
<EraseKey />
<AsfFrameworkConfig>
<framework-data xmlns="">
<options />
<configurations />
<files />
<documentation help="" />
<offline-documentation help="" />
<dependencies>
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.49.1" />
</dependencies>
</framework-data>
</AsfFrameworkConfig>
<avrtool>com.atmel.avrdbg.tool.atmelice</avrtool>
<avrtoolserialnumber>J42700011100</avrtoolserialnumber>
<avrdeviceexpectedsignature>0x1E9702</avrdeviceexpectedsignature>
<com_atmel_avrdbg_tool_atmelice>
<ToolOptions>
<InterfaceProperties>
<JtagDbgClock>2500000</JtagDbgClock>
</InterfaceProperties>
<InterfaceName>JTAG</InterfaceName>
</ToolOptions>
<ToolType>com.atmel.avrdbg.tool.atmelice</ToolType>
<ToolNumber>J42700011100</ToolNumber>
<ToolName>Atmel-ICE</ToolName>
</com_atmel_avrdbg_tool_atmelice>
<avrtoolinterface>JTAG</avrtoolinterface>
<avrtoolinterfaceclock>2500000</avrtoolinterfaceclock>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.Device>-mmcu=atmega128 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128"</avrgcc.common.Device>
<avrgcc.common.optimization.RelaxBranches>True</avrgcc.common.optimization.RelaxBranches>
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcc.compiler.symbols.DefSymbols>
<ListValues>
<Value>NDEBUG</Value>
</ListValues>
</avrgcc.compiler.symbols.DefSymbols>
<avrgcc.compiler.directories.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.Device>-mmcu=atmega128 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128"</avrgcc.common.Device>
<avrgcc.common.optimization.RelaxBranches>True</avrgcc.common.optimization.RelaxBranches>
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcc.compiler.symbols.DefSymbols>
<ListValues>
<Value>DEBUG</Value>
</ListValues>
</avrgcc.compiler.symbols.DefSymbols>
<avrgcc.compiler.directories.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<avrgcc.compiler.optimization.level>Optimize debugging experience (-Og)</avrgcc.compiler.optimization.level>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
<avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<ItemGroup>
<Compile Include="main.c">
<SubType>compile</SubType>
</Compile>
</ItemGroup>
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
</Project>

View File

@@ -0,0 +1,323 @@
flash unsigned char font[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0/ -->
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //1/ --> 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //2/ --> 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //3/ --> 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //4/ --> 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //5/ --> 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //6/ --> 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //7/ --> 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //8/ --> 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //9/ -->
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //10/ -->
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //11/ -->
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //12/ -->
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //13/ --> Problem 2
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //14/ --> 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //15/ --> 
0x20,0x20,0x28,0x28,0x68,0xB0,0x60,0x20, //16/ --> 
0x20,0x20,0x28,0x2A,0x28,0x30,0x20,0x20, //17/ --> 
0x00,0x80,0x80,0x44,0x32,0x24,0x20,0x20, //18/ --> 
0x00,0x24,0x24,0x24,0x38,0x20,0x20,0x20, //19/ --> 
0x20,0x20,0x20,0x20,0x24,0x2A,0x11,0x00, //20/ --> 
0x20,0x20,0x20,0x24,0x2A,0x11,0x20,0x20, //21/ --> 
0x30,0x20,0x20,0x20,0x24,0x2A,0x11,0x20, //22/ --> 
0x20,0x20,0x30,0x20,0x30,0x28,0x28,0x18, //23/ --> 
0x20,0x24,0x22,0x21,0x24,0x2A,0x11,0x00, //24/ --> 
0x24,0x22,0x21,0x24,0x2A,0x11,0x20,0x20, //25/ --> 
0x30,0x24,0x22,0x21,0x24,0x2A,0x11,0x20, //26/ --> 
0x00,0x80,0x80,0x40,0x30,0x20,0x20,0x20, //27/ --> 
0x20,0x20,0x20,0x60,0xA0,0x60,0x28,0x30, //28/ --> 
0x20,0x20,0x20,0x60,0xB0,0x60,0x20,0x20, //29/ --> 
0x00,0x30,0x28,0x60,0xA0,0x60,0x30,0x20, //30/ --> 
0x00,0x04,0x06,0x1D,0x25,0x24,0x20,0x20, //31/ --> 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //32/ -->
0x00,0x00,0x4F,0x00,0x00,0x00,0x00,0x00, //33/ --> !
0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x00, //34/ --> "
0x00,0x14,0x7F,0x14,0x7F,0x14,0x00,0x00, //35/ --> #
0x00,0x24,0x2A,0x7F,0x2A,0x12,0x00,0x00, //36/ --> $
0x00,0x23,0x13,0x08,0x64,0x62,0x00,0x00, //37/ --> %
0x00,0x36,0x49,0x55,0x22,0x40,0x00,0x00, //38/ --> &
0x00,0x00,0x05,0x03,0x00,0x00,0x00,0x00, //39/ --> '
0x00,0x1C,0x22,0x41,0x00,0x00,0x00,0x00, //40/ --> (
0x00,0x41,0x22,0x1C,0x00,0x00,0x00,0x00, //41/ --> )
0x00,0x14,0x08,0x3E,0x08,0x14,0x00,0x00, //42/ --> *
0x00,0x08,0x08,0x3E,0x08,0x08,0x00,0x00, //43/ --> +
0x00,0x00,0x28,0x18,0x00,0x00,0x00,0x00, //44/ --> ,
0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00, //45/ --> -
0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00, //46/ --> .
0x00,0x20,0x10,0x08,0x04,0x02,0x00,0x00, //47/ --> /
0x00,0x3E,0x51,0x49,0x45,0x3E,0x00,0x00, //48/ --> 0
0x00,0x00,0x42,0x7F,0x40,0x00,0x00,0x00, //49/ --> 1
0x00,0x42,0x61,0x51,0x49,0x46,0x00,0x00, //50/ --> 2
0x00,0x21,0x41,0x45,0x4B,0x31,0x00,0x00, //51/ --> 3
0x00,0x18,0x14,0x12,0x7F,0x10,0x00,0x00, //52/ --> 4
0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00, //53/ --> 5
0x00,0x3C,0x4A,0x49,0x49,0x30,0x00,0x00, //54/ --> 6
0x00,0x01,0x71,0x09,0x05,0x03,0x00,0x00, //55/ --> 7
0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00, //56/ --> 8
0x00,0x06,0x49,0x49,0x29,0x1E,0x00,0x00, //57/ --> 9
0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00, //58/ --> :
0x00,0x00,0x56,0x36,0x00,0x00,0x00,0x00, //59/ --> ;
0x00,0x08,0x14,0x22,0x41,0x00,0x00,0x00, //60/ --> <
0x00,0x24,0x24,0x24,0x24,0x24,0x00,0x00, //61/ --> =
0x00,0x00,0x41,0x22,0x14,0x08,0x00,0x00, //62/ --> >
0x00,0x02,0x01,0x51,0x09,0x06,0x00,0x00, //63/ --> ?
0x00,0x32,0x49,0x79,0x41,0x3E,0x00,0x00, //64/ --> @
0x00,0x7E,0x11,0x11,0x11,0x7E,0x00,0x00, //65/ --> A
0x00,0x7F,0x49,0x49,0x49,0x36,0x00,0x00, //66/ --> B
0x00,0x3E,0x41,0x41,0x41,0x22,0x00,0x00, //67/ --> C
0x00,0x7F,0x41,0x41,0x22,0x1C,0x00,0x00, //68/ --> D
0x00,0x7F,0x49,0x49,0x49,0x41,0x00,0x00, //69/ --> E
0x00,0x7F,0x09,0x09,0x09,0x01,0x00,0x00, //70/ --> F
0x00,0x3E,0x41,0x49,0x49,0x3A,0x00,0x00, //71/ --> G
0x00,0x7F,0x08,0x08,0x08,0x7F,0x00,0x00, //72/ --> H
0x00,0x00,0x41,0x7F,0x41,0x00,0x00,0x00, //73/ --> I
0x00,0x20,0x40,0x41,0x3F,0x01,0x00,0x00, //74/ --> J
0x00,0x7F,0x08,0x14,0x22,0x41,0x00,0x00, //75/ --> K
0x00,0x7F,0x40,0x40,0x40,0x40,0x00,0x00, //76/ --> L
0x00,0x7F,0x02,0x0C,0x02,0x7F,0x00,0x00, //77/ --> M
0x00,0x7F,0x04,0x08,0x10,0x7F,0x00,0x00, //78/ --> N
0x00,0x3E,0x41,0x41,0x41,0x3E,0x00,0x00, //79/ --> O
0x00,0x7F,0x09,0x09,0x09,0x06,0x00,0x00, //80/ --> P
0x3E,0x41,0x51,0x21,0x5E,0x00,0x00,0x00, //81/ --> Q
0x00,0x7F,0x09,0x19,0x29,0x46,0x00,0x00, //82/ --> R
0x00,0x46,0x49,0x49,0x49,0x31,0x00,0x00, //83/ --> S
0x00,0x01,0x01,0x7F,0x01,0x01,0x00,0x00, //84/ --> T
0x00,0x3F,0x40,0x40,0x40,0x3F,0x00,0x00, //85/ --> U
0x00,0x1F,0x20,0x40,0x20,0x1F,0x00,0x00, //86/ --> V
0x00,0x3F,0x40,0x60,0x40,0x3F,0x00,0x00, //87/ --> W
0x00,0x63,0x14,0x08,0x14,0x63,0x00,0x00, //88/ --> X
0x00,0x07,0x08,0x70,0x08,0x07,0x00,0x00, //89/ --> Y
0x00,0x61,0x51,0x49,0x45,0x43,0x00,0x00, //90/ --> Z
0x00,0x7F,0x41,0x41,0x00,0x00,0x00,0x00, //91/ --> [
0x00,0x15,0x16,0x7C,0x16,0x15,0x00,0x00, //92/ --> '\'
0x00,0x41,0x41,0x7F,0x00,0x00,0x00,0x00, //93/ --> ]
0x00,0x04,0x02,0x01,0x02,0x04,0x00,0x00, //94/ --> ^
0x00,0x40,0x40,0x40,0x40,0x40,0x00,0x00, //95/ --> _
0x00,0x01,0x02,0x04,0x00,0x00,0x00,0x00, //96/ --> `
0x00,0x20,0x54,0x54,0x54,0x78,0x00,0x00, //97/ --> a
0x00,0x7F,0x44,0x44,0x44,0x38,0x00,0x00, //98/ --> b
0x00,0x38,0x44,0x44,0x44,0x00,0x00,0x00, //99/ --> c
0x00,0x38,0x44,0x44,0x48,0x7F,0x00,0x00, //100/ --> d
0x00,0x38,0x54,0x54,0x54,0x18,0x00,0x00, //101/ --> e
0x00,0x10,0x7E,0x11,0x01,0x02,0x00,0x00, //102/ --> f
0x00,0x0C,0x52,0x52,0x52,0x3E,0x00,0x00, //103/ --> g
0x00,0x7F,0x08,0x04,0x04,0x78,0x00,0x00, //104/ --> h
0x00,0x00,0x44,0x7D,0x40,0x00,0x00,0x00, //105/ --> i
0x00,0x20,0x40,0x40,0x3D,0x00,0x00,0x00, //106/ --> j
0x00,0x7F,0x10,0x28,0x44,0x00,0x00,0x00, //107/ --> k
0x00,0x00,0x41,0x7F,0x40,0x00,0x00,0x00, //108/ --> l
0x00,0x7C,0x04,0x18,0x04,0x78,0x00,0x00, //109/ --> m
0x00,0x7C,0x08,0x04,0x04,0x78,0x00,0x00, //110/ --> n
0x00,0x38,0x44,0x44,0x44,0x38,0x00,0x00, //111/ --> o
0x00,0x7C,0x14,0x14,0x14,0x08,0x00,0x00, //112/ --> p
0x00,0x08,0x14,0x14,0x18,0x7C,0x00,0x00, //113/ --> q
0x00,0x7C,0x08,0x04,0x04,0x08,0x00,0x00, //114/ --> r
0x00,0x48,0x54,0x54,0x54,0x20,0x00,0x00, //115/ --> s
0x00,0x04,0x3F,0x44,0x40,0x20,0x00,0x00, //116/ --> t
0x00,0x3C,0x40,0x40,0x20,0x7C,0x00,0x00, //117/ --> u
0x00,0x1C,0x20,0x40,0x20,0x1C,0x00,0x00, //118/ --> v
0x00,0x1E,0x20,0x10,0x20,0x1E,0x00,0x00, //119/ --> w
0x00,0x22,0x14,0x08,0x14,0x22,0x00,0x00, //120/ --> x
0x00,0x06,0x48,0x48,0x48,0x3E,0x00,0x00, //121/ --> y
0x00,0x44,0x64,0x54,0x4C,0x44,0x00,0x00, //122/ --> z
0x00,0x08,0x36,0x41,0x00,0x00,0x00,0x00, //123/ --> {
0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00, //124/ --> |
0x00,0x41,0x36,0x08,0x00,0x00,0x00,0x00, //125/ --> }
0x00,0x08,0x08,0x2A,0x1C,0x08,0x00,0x00, //126/ --> ~
0x00,0x08,0x1C,0x2A,0x08,0x08,0x00,0x00, //127/ --> 
0x00,0x3C,0x42,0x41,0x42,0x3C,0x00,0x00, //128/ --> <20>
0x00,0x30,0x28,0x60,0xA0,0x60,0x28,0x30, //129/ --> <20>
0x20,0x20,0x20,0x20,0xA0,0x20,0x28,0x30, //130/ --> <20>
0x20,0x20,0x20,0x20,0xB0,0x20,0x20,0x20, //131/ --> <20>
0x00,0x30,0x28,0x20,0xA0,0x20,0x30,0x20, //132/ --> <20>
0x20,0x20,0x20,0x22,0x20,0x22,0x28,0x30, //133/ --> <20>
0x20,0x20,0x20,0x22,0x30,0x22,0x20,0x20, //134/ --> <20>
0x00,0x30,0x28,0x22,0x20,0x22,0x30,0x20, //135/ --> <20>
0x20,0x20,0x20,0x22,0x21,0x22,0x28,0x30, //136/ --> <20>
0x20,0x20,0x20,0x22,0x31,0x22,0x20,0x20, //137/ --> <20>
0x00,0x30,0x28,0x22,0x21,0x22,0x30,0x20, //138/ --> <20>
0x20,0x20,0x28,0x28,0x28,0xB0,0x20,0x20, //139/ --> <20>
0x20,0x20,0x28,0x28,0x28,0x30,0x20,0x20, //140/ --> <20>
0x00,0xC0,0xA8,0x28,0x68,0xB0,0x60,0x20, //141/ --> <20>
0x00,0x00,0x80,0x80,0x44,0x32,0x04,0x00, //142/ --> <20>
0x00,0x24,0x25,0x24,0x38,0x20,0x20,0x20, //143/ --> <20>
0x30,0x24,0x22,0x21,0x24,0x2A,0x11,0x00, //144/ --> <20>
0x00,0x80,0x80,0x40,0x34,0x20,0x20,0x20, //145/ --> <20>
0x20,0x20,0x20,0x38,0x20,0x38,0x20,0x18, //146/ --> <20>
0x20,0x20,0x38,0x20,0x38,0x20,0x38,0x20, //147/ --> <20>
0x60,0x80,0x80,0x78,0x20,0x38,0x20,0x18, //148/ --> <20>
0x20,0x20,0x20,0x38,0x22,0x39,0x22,0x18, //149/ --> <20>
0x20,0x20,0x38,0x22,0x39,0x22,0x38,0x20, //150/ --> <20>
0x60,0x80,0x80,0x78,0x22,0x39,0x22,0x18, //151/ --> <20>
0x30,0x20,0x20,0x20,0x24,0x2A,0x11,0x00, //152/ --> <20>
0x20,0x30,0x20,0x30,0x28,0x28,0x38,0x20, //153/ --> <20>
0x60,0x80,0x80,0x60,0x30,0x28,0x28,0x38, //154/ --> <20>
0x20,0x20,0x30,0x20,0x30,0x28,0x2A,0x18, //155/ --> <20>
0x20,0x30,0x20,0x30,0x28,0x2A,0x38,0x20, //156/ --> <20>
0x60,0x80,0x80,0x60,0x30,0x28,0x2A,0x38, //157/ --> <20>
0x20,0x20,0x3E,0x30,0x28,0x28,0x38,0x20, //158/ --> <20>
0x20,0x20,0x3E,0x30,0x28,0x2A,0x38,0x20, //159/ --> <20>
0x20,0x20,0x20,0x20,0x30,0x28,0x28,0x00, //160/ -->
0x20,0x20,0x20,0x30,0x28,0x28,0x20,0x20, //161/ --> <20>
0x00,0x40,0xA0,0xB0,0x28,0x28,0x20,0x20, //162/ --> <20>
0x20,0x20,0x20,0x20,0x30,0x28,0x2A,0x00, //163/ --> <20>
0x20,0x20,0x20,0x30,0x28,0x2A,0x20,0x20, //164/ --> <20>
0x00,0x40,0xA0,0xB0,0x28,0x2A,0x20,0x20, //165/ --> <20>
0x20,0x20,0x20,0x20,0x30,0x28,0x2A,0x30, //166/ --> <20>
0x20,0x20,0x30,0x28,0x2A,0x30,0x20,0x20, //167/ --> <20>
0x00,0x18,0x20,0x20,0x30,0x28,0x2A,0x30, //168/ --> <20>
0x20,0x20,0x20,0x20,0x30,0x2A,0x28,0x32, //169/ --> <20>
0x20,0x20,0x30,0x2A,0x28,0x32,0x20,0x20, //170/ --> <20>
0x60,0x80,0x80,0xB2,0xA8,0x7A,0x20,0x20, //171/ --> <20>
0x22,0x25,0x25,0x25,0x25,0x25,0x25,0x19, //172/ --> <20>
0x20,0x20,0x20,0x1C,0x22,0x21,0x20,0x20, //173/ --> <20>
0x30,0x28,0x2C,0x2A,0x20,0x3F,0x20,0x20, //174/ --> <20>
0x20,0x20,0x20,0x20,0x20,0x20,0x1F,0x00, //175/ --> <20>
0x20,0x20,0x20,0x20,0x1F,0x20,0x20,0x20, //176/ --> <20>
0x00,0x30,0x40,0x40,0x3F,0x20,0x20,0x20, //177/ --> <20>
0x20,0x20,0x20,0x20,0x30,0x48,0x48,0x30, //178/ --> <20>
0x20,0x20,0x30,0x48,0x48,0x30,0x20,0x20, //179/ --> <20>
0x80,0x40,0x30,0x48,0x48,0x30,0x20,0x20, //180/ --> <20>
0x20,0x20,0x20,0x20,0x22,0x20,0x18,0x00, //181/ --> <20>
0x20,0x20,0x20,0x20,0x1A,0x20,0x20,0x20, //182/ --> <20>
0x30,0x40,0x44,0x40,0x30,0x20,0x20,0x20, //183/ --> <20>
0x20,0x20,0x20,0x30,0x28,0x3A,0x2C,0x18, //184/ --> <20>
0x20,0x20,0x30,0x28,0x3A,0x2C,0x38,0x20, //185/ --> <20>
0x00,0x18,0x14,0x14,0x18,0x20,0x20,0x20, //186/ --> <20>
0x00,0x21,0x22,0x24,0x28,0x10,0x0F,0x00, //187/ --> <20>
0x00,0xB0,0xA8,0x78,0x20,0x20,0x20,0x20, //188/ --> <20>
0x20,0x20,0x20,0xA0,0x20,0xA0,0x28,0x30, //189/ --> <20>
0x20,0x20,0x20,0xA0,0x30,0xA0,0x20,0x20, //190/ --> <20>
0x00,0x60,0x80,0x80,0xA0,0x50,0x10,0x20, //191/ --> <20>
0x00,0x1E,0x20,0x20,0x20,0x20,0x20,0x20, //192/ --> <20>
0x00,0x20,0x30,0x28,0x28,0x20,0x00,0x00, //193/ --> <20>
0x00,0x04,0x02,0x02,0x3A,0x02,0x02,0x01, //194/ --> <20>
0x00,0x00,0x04,0x06,0x3D,0x05,0x04,0x00, //195/ --> <20>
0x00,0x00,0x04,0xB6,0xAD,0x7D,0x04,0x00, //196/ --> <20>
0x00,0x00,0x80,0xC0,0xBF,0xA0,0x80,0x00, //197/ --> <20>
0x04,0x66,0x85,0x95,0xA8,0xA8,0x48,0x00, //198/ --> <20>
0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00, //199/ --> <20>
0x00,0x30,0x28,0x20,0xA0,0x20,0x28,0x30, //200/ --> <20>
0x00,0x00,0x30,0x2A,0x28,0x32,0x00,0x00, //201/ --> <20>
0x00,0x30,0x28,0x22,0x20,0x22,0x28,0x30, //202/ --> <20>
0x00,0x30,0x28,0x22,0x21,0x22,0x28,0x30, //203/ --> <20>
0x00,0xC0,0xA8,0xA8,0x28,0xB0,0x20,0x20, //204/ --> <20>
0x00,0xC0,0xA8,0xA8,0xA8,0x30,0x20,0x20, //205/ --> <20>
0x00,0xC0,0xA8,0xAA,0x28,0x30,0x20,0x20, //206/ --> <20>
0x00,0x00,0x24,0x24,0x24,0x38,0x00,0x00, //207/ --> <20>
0x00,0x00,0x24,0x25,0x24,0x38,0x00,0x00, //208/ --> <20>
0x00,0x80,0x80,0x40,0x30,0x00,0x00,0x00, //209/ --> <20>
0x00,0x00,0x80,0x80,0x40,0x34,0x00,0x00, //210/ --> <20>
0x60,0x80,0x80,0x78,0x20,0x38,0x20,0x18, //211/ --> <20>
0x60,0x80,0x80,0x78,0x22,0x39,0x22,0x18, //212/ --> <20>
0x60,0x80,0x80,0x60,0x30,0x28,0x28,0x18, //213/ --> <20>
0x60,0x80,0x80,0x60,0x30,0x28,0x2A,0x18, //214/ --> <20>
0x00,0x22,0x14,0x08,0x14,0x22,0x00,0x00, //215/ --> <20>
0x20,0x20,0x3E,0x30,0x28,0x28,0x18,0x00, //216/ --> <20>
0x20,0x20,0x3E,0x30,0x28,0x2A,0x18,0x00, //217/ --> <20>
0x00,0x00,0x40,0xA0,0xB0,0x28,0x28,0x00, //218/ --> <20>
0x00,0x00,0x40,0xA0,0xB0,0x2A,0x28,0x00, //219/ --> <20>
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, //220/ --> <20>
0x00,0x18,0x20,0x20,0x30,0x28,0x2A,0x30, //221/ --> <20>
0x00,0x60,0x80,0x80,0xB2,0xA8,0x7A,0x00, //222/ --> <20>
0x00,0x30,0x28,0x2C,0x2A,0x20,0x3F,0x00, //223/ --> <20>
0x00,0x40,0xA9,0xAA,0xA8,0xF0,0x00,0x00, //224/ --> <20>
0x00,0x00,0x60,0x80,0x80,0x7E,0x00,0x00, //225/ --> <20>
0x00,0x40,0xAA,0xA9,0xAA,0xF0,0x00,0x00, //226/ --> <20>
0x00,0x00,0xC0,0x20,0x30,0x28,0x28,0x30, //227/ --> <20>
0x00,0x00,0x60,0x80,0x88,0x80,0x60,0x00, //228/ --> <20>
0x00,0x00,0x30,0x28,0x28,0x30,0x00,0x00, //229/ --> <20>
0x00,0x00,0x00,0xB0,0xA8,0x78,0x00,0x00, //230/ --> <20>
0x04,0x26,0x25,0x25,0x28,0x10,0x0F,0x00, //231/ --> <20>
0x04,0x22,0x22,0x26,0x29,0x10,0x0F,0x00, //232/ --> <20>
0x00,0x21,0x22,0x24,0xA8,0xD0,0xAF,0xA0, //233/ --> <20>
0x00,0x70,0xAA,0xA9,0xAA,0x30,0x00,0x00, //234/ --> <20>
0x00,0x70,0xAA,0xA8,0xAA,0x30,0x00,0x00, //235/ --> <20>
0x00,0x30,0x40,0x40,0x50,0x28,0x08,0x00, //236/ --> <20>
0x00,0x30,0xC0,0x40,0xD0,0x28,0x08,0x00, //237/ --> <20>
0x00,0x00,0x02,0x79,0x02,0x00,0x00,0x00, //238/ --> <20>
0x00,0x00,0x02,0x78,0x02,0x00,0x00,0x00, //239/ --> <20>
0x00,0x00,0x00,0x00,0x00,0x05,0x05,0x05, //240/ --> <20>
0x00,0x00,0x00,0x04,0x03,0x0B,0x06,0x06, //241/ --> <20>
0xA0,0xA0,0xA0,0x00,0x00,0x00,0x00,0x00, //242/ --> <20>
0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00, //243/ --> <20>
0x00,0x21,0x22,0x24,0x28,0x10,0x2F,0x20, //244/ --> <20>
0x00,0x00,0x00,0x00,0x00,0x04,0x03,0x03, //245/ --> <20>
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00, //246/ --> <20>
0x00,0x00,0x10,0x10,0x54,0x10,0x10,0x00, //247/ --> <20>
0x00,0x00,0x02,0x04,0x02,0x04,0x02,0x00, //248/ --> <20>
0x20,0x24,0x26,0x25,0x25,0x20,0x28,0x30, //249/ --> <20>
0x20,0x24,0x26,0x25,0x35,0x20,0x20,0x20, //250/ --> <20>
0x08,0x6C,0x8A,0x8A,0xA0,0x50,0x10,0x20, //251/ --> <20>
0x04,0xB6,0xAD,0x7D,0x24,0x20,0x20,0x20, //252/ --> <20>
0x00,0x19,0x14,0x15,0x18,0x20,0x20,0x20, //253/ --> <20>
0x04,0x02,0x02,0x1A,0x22,0x22,0x21,0x20, //254/ --> <20>
0x00,0x40,0x60,0x50,0x48,0x50,0x40,0x40 //255/ --> <20>
};
flash unsigned char map[62][6] = {
{193,193,193,193,0,0},
{194,194,254,254,1,0},
{195,195,31,31,1,0},
{196,196,252,252,1,0},
{197,197,197,197,1,1},
{198,189,191,190,1,1},
{199,199,192,192,1,0},
{200,130,132,131,1,1},
{201,201,253,253,1,0},
{202,133,135,134,1,1},
{203,136,138,137,1,1},
{204,139,204,139,1,1},
{205,140,205,140,1,1},
{206,17,206,17,1,1},
{207,207,19,19,1,0},
{208,208,143,143,1,0},
{209,209,27,27,1,0},
{210,210,145,145,1,0},
{211,146,148,147,1,1},
{212,149,151,150,1,1},
{213,23,154,153,1,1},
{214,155,157,156,1,1},
{215,215,215,215,0,0},
{216,216,158,158,1,1},
{217,217,159,159,1,1},
{218,160,162,161,1,1},
{219,163,165,164,1,1},
{220,220,220,220,0,0},
{221,166,168,167,1,1},
{222,169,171,170,1,1},
{223,172,174,173,1,1},
{224,224,224,224,0,0},
{225,175,177,176,1,1},
{226,226,226,226,0,0},
{227,178,180,179,1,1},
{228,181,183,182,1,1},
{229,184,186,185,1,1},
{230,230,188,188,1,0},
{231,231,231,231,0,0},
{232,232,232,232,0,0},
{233,233,233,233,0,0},
{234,234,234,234,0,0},
{235,235,235,235,0,0},
{236,189,191,190,1,1},
{237,189,191,190,1,1},
{238,238,238,238,0,0},
{239,239,239,239,0,0},
{240,240,240,240,0,0},
{241,241,241,241,0,0},
{242,242,242,242,0,0},
{243,243,243,243,0,0},
{245,245,245,245,0,0},
{246,246,246,246,0,0},
{247,247,247,247,0,0},
{248,248,248,248,0,0},
{251,249,251,250,1,1},
{187,187,244,244,1,0},
{129,28,30,29,1,1},
{144,24,26,25,1,1},
{152,20,22,21,1,1},
{142,142,18,18,1,0},
{141,16,141,16,1,1}
};

View File

@@ -0,0 +1,107 @@
/***************************************************************************
* Osama's Lab KS0108 GLCD library; a library that facilitates interfacing KS0108 based GLCDs.
*
* Copyright (C) 2010-2012 Osama's Lab
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
**************************************************************************/
#define F_CPU 10e6
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
typedef unsigned char byte;
//DEBUG
//#define DEBUG_READ 0
//#define DEBUG_GLCD 0
//----------------------
#define E_DELAY 10
#define DATAPORT PORTC
#define CONTROLPORT PORTB
#define DATADDR DDRC
#define DATAPIN PINC
#define GLCD_CS1 (1<<0)
#define GLCD_CS2 (1<<1)
#define GLCD_RS (1<<2)
#define GLCD_RW (1<<3)
#define GLCD_EN (1<<5)
#define GLCD_CS_ACTIVE_LOW 1 //Define this if your GLCD CS
//is active low (refer to datasheet)
void wait( int ms )
{
for (int i=0; i<ms; i++)
{
_delay_ms( 1 ); // library function (max 30 ms at 8MHz)
}
}
void trigger()
{
CONTROLPORT |= GLCD_EN; //EN high
_delay_us(E_DELAY);
CONTROLPORT &= ~GLCD_EN; //EN low
_delay_us(E_DELAY);
}
//----------------------
void glcd_on()
{
#ifdef GLCD_CS_ACTIVE_LOW
CONTROLPORT &= ~CS1; //Activate both chips
CONTROLPORT &= ~CS2;
#else
CONTROLPORT |= CS1; //Activate both chips
CONTROLPORT |= CS2;
#endif
CONTROLPORT &= ~GLCD_RS; //RS low --> command
CONTROLPORT &= ~GLCD_RW; //RW low --> write
DATAPORT = 0x3F; //ON command
trigger();
}
//----------------------
void glcd_off()
{
#ifdef GLCD_CS_ACTIVE_LOW
CONTROLPORT &= ~CS1; //Activate both chips
CONTROLPORT &= ~CS2;
#else
CONTROLPORT |= CS1; //Activate both chips
CONTROLPORT |= CS2;
#endif
CONTROLPORT &= ~GLCD_RS; //DI low --> command
CONTROLPORT &= ~GLCD_RW; //RW low --> write
DATAPORT = 0x3E; //OFF command
trigger();
}
int main(void)
{
while (1)
{
glcd_on();
wait(2000);
glcd_off();
wait(2000);
}
}
//----------------------