Optimering av vektor i C
Optimering av vektor i C
Hej!
Jag har precis lyckats få igång en grafisk display från en slaktad Nokia5110 med en pic 18F248.
Om det är någon som är intresserad hur jag har gjort så finns det exempel här:
http://serdisplib.sourceforge.net/ser/pcd8544.html
http://www.microsyl.com/nokialcd/nokialcd.html
Problemet:
Det finns ingen ASCII tabell i displayen som det finns i de numeriska, alltså måste man definiera upp hur varje bokstav ser ut. Varje bokstav man vill rita ut tar 5 byte vilket blir ganska mycket om man vill ha med hela ACII tabellen.
kompilatorn (C18) klagar om man försöker göra en vektor av typen:
static const byte FontLookup [][5] =
{
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp
{ 0x00, 0x00, 0x2f, 0x00, 0x00 }, // !
{ 0x00, 0x07, 0x00, 0x07, 0x00 }, // "
{ 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // #
.
.
.
.
.
{ 0x44, 0x28, 0x10, 0x28, 0x44 }, // x
{ 0x0C, 0x50, 0x50, 0x50, 0x3C }, // y
{ 0x44, 0x64, 0x54, 0x4C, 0x44 } // z
}
jag är inte så jätte bra på det här med vart saker hamnar i minnet. men jag antar att vektorn lägger sig i ramminnet.
storleken på minnet i kretsen är enligt databladet:
Words: 8192x16 (16k)
eeprom: 256 (bytes)
ram: 768 (bytes)
Den totala storleken på vektorn som jag vill lagra är minst 50 tecken, alltså 250 bytes.
Finns det nåot sätt att kringgå detta? så att man kan lägga det i programminnet istället, för jag ska ju bara hämta information, inte ändra i den...
MVH / Daniel Grafström
Jag har precis lyckats få igång en grafisk display från en slaktad Nokia5110 med en pic 18F248.
Om det är någon som är intresserad hur jag har gjort så finns det exempel här:
http://serdisplib.sourceforge.net/ser/pcd8544.html
http://www.microsyl.com/nokialcd/nokialcd.html
Problemet:
Det finns ingen ASCII tabell i displayen som det finns i de numeriska, alltså måste man definiera upp hur varje bokstav ser ut. Varje bokstav man vill rita ut tar 5 byte vilket blir ganska mycket om man vill ha med hela ACII tabellen.
kompilatorn (C18) klagar om man försöker göra en vektor av typen:
static const byte FontLookup [][5] =
{
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp
{ 0x00, 0x00, 0x2f, 0x00, 0x00 }, // !
{ 0x00, 0x07, 0x00, 0x07, 0x00 }, // "
{ 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // #
.
.
.
.
.
{ 0x44, 0x28, 0x10, 0x28, 0x44 }, // x
{ 0x0C, 0x50, 0x50, 0x50, 0x3C }, // y
{ 0x44, 0x64, 0x54, 0x4C, 0x44 } // z
}
jag är inte så jätte bra på det här med vart saker hamnar i minnet. men jag antar att vektorn lägger sig i ramminnet.
storleken på minnet i kretsen är enligt databladet:
Words: 8192x16 (16k)
eeprom: 256 (bytes)
ram: 768 (bytes)
Den totala storleken på vektorn som jag vill lagra är minst 50 tecken, alltså 250 bytes.
Finns det nåot sätt att kringgå detta? så att man kan lägga det i programminnet istället, för jag ska ju bara hämta information, inte ändra i den...
MVH / Daniel Grafström
-
- Inlägg: 515
- Blev medlem: 31 maj 2003, 10:42:37
- Ort: Helsingborg
-
- Inlägg: 515
- Blev medlem: 31 maj 2003, 10:42:37
- Ort: Helsingborg
-
- Inlägg: 515
- Blev medlem: 31 maj 2003, 10:42:37
- Ort: Helsingborg