In de Keil compiler kun je een array definieren als "code" waarmee hij in het flash/eprom geheugen opgeslagen wordt.
Bijvoorbeeld :
c code:
unsigned char code segm_table[] = {
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
Dit wil ik ook bij een Arduino doen maar het lukt me niet.
Ik heb deze array :
c code:
const byte EEPROM_default[] = {10, 25, 5, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120,
0, 0, 1, 0, 1, 1, 1, 1, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3a, 0x3b, 0x3c, 0x3d, 0x3f};
Deze werkt, maar kost RAM geheugen.
Gebruik ik deze :
c code:
const byte EEPROM_default[] PROGMEM = {10, 25, 5, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120,
0, 0, 1, 0, 1, 1, 1, 1, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3a, 0x3b, 0x3c, 0x3d, 0x3f};
Dan leest hij dit terug :
0 - 0
1 - B8
2 - 0
3 - 0
4 - 1
5 - 3
6 - 0
7 - B8
8 - FC
9 - 0
A - 0
B - 0
C - 0
D - 0
E - 0
F - 0
10 - B8
11 - B8
12 - B8
13 - B8
14 - B8
15 - B8
16 - B8
17 - B8
18 - B8
19 - B8
1A - B8
1B - B8
1C - B8
1D - B8
1E - B8
1F - B8
20 - B8
21 - B8
22 - B8
23 - B8
24 - B8
25 - B8
26 - B8
27 - B8
28 - B8
29 - B8
2A - B8
2B - B8
2C - B8
2D - B8
2E - B8
2F - B8
30 - B8
31 - B8
32 - B8
33 - B8
34 - 1
35 - 4
36 - 3B
37 - 0
38 - 0
39 - B8
3A - 0
3B - B8
3C - 0
3D - F8
3E - FE
3F - FF
Weet iemand raad ?