Scusa non avevo capito. Pensandoci potresti avere ragione.
Tornando al progetto che per ora è molto semplice
#include "LCD12864RSPI.h"
#include "font.h"
#define FONT_HEIGHT 9
void setup()
{
Serial.begin(9600);
LCDA.initDriverPin(2,7,10);
LCDA.Initialise();
delay(100);
LCDA.CLEAR();
delay(100);
Serial.println(fontLookup[65]);
}
void loop()
{
}
gli array sono in font.h
unsigned char fontPixel[69][9] = {
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, // (0x20)
{ 0x00, 0x04, 0x0a, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x00 }, // A (0x41)
{ 0x00, 0x1e, 0x11, 0x11, 0x1e, 0x11, 0x11, 0x1e, 0x00 }, // B (0x42)
{ 0x00, 0x0e, 0x11, 0x10, 0x10, 0x10, 0x11, 0x0e, 0x00 }, // C (0x43)
{ 0x00, 0x1c, 0x12, 0x11, 0x11, 0x11, 0x12, 0x1c, 0x00 }, // D (0x44)
{ 0x00, 0x1f, 0x10, 0x10, 0x1e, 0x10, 0x10, 0x1f, 0x00 }, // E (0x45)
{ 0x00, 0x1f, 0x10, 0x10, 0x1e, 0x10, 0x10, 0x10, 0x00 }, // F (0x46)
{ 0x00, 0x0e, 0x11, 0x10, 0x17, 0x11, 0x11, 0x0f, 0x00 }, // G (0x47)
{ 0x00, 0x11, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x11, 0x00 }, // H (0x48)
{ 0x00, 0x0e, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0e, 0x00 }, // I (0x49)
{ 0x00, 0x07, 0x02, 0x02, 0x02, 0x02, 0x12, 0x0c, 0x00 }, // J (0x4a)
{ 0x00, 0x11, 0x12, 0x14, 0x18, 0x14, 0x12, 0x11, 0x00 }, // K (0x4b)
{ 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x00 }, // L (0x4c)
{ 0x00, 0x11, 0x1b, 0x15, 0x15, 0x11, 0x11, 0x11, 0x00 }, // M (0x4d)
{ 0x00, 0x11, 0x11, 0x19, 0x15, 0x13, 0x11, 0x11, 0x00 }, // N (0x4e)
{ 0x00, 0x0e, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e, 0x00 }, // O (0x4f)
{ 0x00, 0x1e, 0x11, 0x11, 0x1e, 0x10, 0x10, 0x10, 0x00 }, // P (0x50)
{ 0x00, 0x0e, 0x11, 0x13, 0x15, 0x19, 0x11, 0x0e, 0x00 }, // 0 (0x30)
{ 0x00, 0x04, 0x0c, 0x04, 0x04, 0x04, 0x04, 0x0e, 0x00 }, // 1 (0x31)
{ 0x00, 0x0e, 0x11, 0x01, 0x02, 0x04, 0x08, 0x1f, 0x00 }, // 2 (0x32)
{ 0x00, 0x1f, 0x02, 0x04, 0x02, 0x01, 0x11, 0x0e, 0x00 }, // 3 (0x33)
{ 0x00, 0x02, 0x06, 0x0a, 0x12, 0x1f, 0x02, 0x02, 0x00 }, // 4 (0x34)
{ 0x00, 0x1f, 0x10, 0x1e, 0x01, 0x01, 0x11, 0x0e, 0x00 }, // 5 (0x35)
{ 0x00, 0x06, 0x08, 0x10, 0x1e, 0x11, 0x11, 0x0e, 0x00 }, // 6 (0x36)
{ 0x00, 0x1f, 0x11, 0x01, 0x02, 0x04, 0x04, 0x04, 0x00 }, // 7 (0x37)
{ 0x00, 0x0e, 0x11, 0x11, 0x0e, 0x11, 0x11, 0x0e, 0x00 }, // 8 (0x38)
{ 0x00, 0x0e, 0x11, 0x11, 0x0f, 0x01, 0x02, 0x0c, 0x00 }, // 9 (0x39)
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x00 }, // . (0x2e)
{ 0x00, 0x00, 0x06, 0x06, 0x00, 0x06, 0x06, 0x00, 0x00 }, // : (0x3a)
{ 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00 }, // - (0x2d)
{ 0x00, 0x0e, 0x11, 0x11, 0x11, 0x15, 0x12, 0x0d, 0x00 }, // Q (0x51)
{ 0x00, 0x1e, 0x11, 0x11, 0x1e, 0x14, 0x12, 0x11, 0x00 }, // R (0x52)
{ 0x00, 0x0e, 0x11, 0x10, 0x0e, 0x01, 0x11, 0x0e, 0x00 }, // S (0x53)
{ 0x00, 0x1f, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00 }, // T (0x54)
{ 0x00, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e, 0x00 }, // U (0x55)
{ 0x00, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0a, 0x04, 0x00 }, // V (0x56)
{ 0x00, 0x11, 0x11, 0x11, 0x15, 0x15, 0x15, 0x0a, 0x00 }, // W (0x57)
{ 0x00, 0x11, 0x11, 0x0a, 0x04, 0x0a, 0x11, 0x11, 0x00 }, // X (0x58)
{ 0x00, 0x11, 0x11, 0x0a, 0x04, 0x04, 0x04, 0x00, 0x00 }, // Y (0x59)
{ 0x00, 0x1f, 0x01, 0x02, 0x04, 0x08, 0x10, 0x1f, 0x00 }, // Z (0x5a)
{ 0x00, 0x00, 0x00, 0x0e, 0x01, 0x0f, 0x11, 0x0f, 0x00 }, // a (0x61)
{ 0x00, 0x10, 0x10, 0x16, 0x19, 0x11, 0x11, 0x1e, 0x00 }, // b (0x62)
{ 0x00, 0x00, 0x00, 0x0e, 0x10, 0x10, 0x11, 0x0e, 0x00 }, // c (0x63)
{ 0x00, 0x01, 0x01, 0x0d, 0x13, 0x11, 0x11, 0x0f, 0x00 }, // d (0x64)
{ 0x00, 0x00, 0x00, 0x0e, 0x11, 0x1f, 0x10, 0x0e, 0x00 }, // e (0x65)
{ 0x00, 0x06, 0x09, 0x08, 0x1c, 0x08, 0x08, 0x08, 0x00 }, // f (0x66)
{ 0x00, 0x00, 0x00, 0x0f, 0x11, 0x0f, 0x01, 0x0e, 0x00 }, // g (0x67)
{ 0x00, 0x10, 0x10, 0x16, 0x19, 0x11, 0x11, 0x11, 0x00 }, // h (0x68)
{ 0x00, 0x04, 0x00, 0x04, 0x0c, 0x04, 0x04, 0x0e, 0x00 }, // i (0x69)
{ 0x00, 0x02, 0x00, 0x06, 0x02, 0x02, 0x12, 0x0c, 0x00 }, // j (0x6a)
{ 0x00, 0x10, 0x10, 0x12, 0x14, 0x18, 0x14, 0x12, 0x00 }, // k (0x6b)
{ 0x00, 0x0c, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0e, 0x00 }, // l (0x6c)
{ 0x00, 0x00, 0x00, 0x1a, 0x15, 0x15, 0x15, 0x15, 0x00 }, // m (0x6d)
{ 0x00, 0x00, 0x00, 0x16, 0x19, 0x11, 0x11, 0x11, 0x00 }, // n (0x6e)
{ 0x00, 0x00, 0x00, 0x0e, 0x11, 0x11, 0x11, 0x0e, 0x00 }, // o (0x6f)
{ 0x00, 0x00, 0x00, 0x1e, 0x11, 0x1e, 0x10, 0x10, 0x00 }, // p (0x70)
{ 0x00, 0x00, 0x00, 0x0d, 0x13, 0x0f, 0x01, 0x01, 0x00 }, // q (0x71)
{ 0x00, 0x00, 0x00, 0x16, 0x19, 0x10, 0x10, 0x10, 0x00 }, // r (0x72)
{ 0x00, 0x00, 0x00, 0x0e, 0x10, 0x0e, 0x01, 0x1e, 0x00 }, // s (0x73)
{ 0x00, 0x08, 0x08, 0x1c, 0x08, 0x08, 0x09, 0x06, 0x00 }, // t (0x74)
{ 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x13, 0x0d, 0x00 }, // u (0x75)
{ 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x0a, 0x04, 0x00 }, // v (0x76)
{ 0x00, 0x00, 0x00, 0x11, 0x11, 0x15, 0x15, 0x0a, 0x00 }, // w (0x77)
{ 0x00, 0x00, 0x00, 0x11, 0x0a, 0x04, 0x0a, 0x11, 0x00 }, // x (0x78)
{ 0x00, 0x00, 0x00, 0x11, 0x11, 0x0f, 0x01, 0x0e, 0x00 }, // y (0x79)
{ 0x00, 0x00, 0x1f, 0x02, 0x04, 0x08, 0x1f, 0x00, 0x00 }, // z (0x7a)
{ 0x0c, 0x12, 0x12, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00 }, // @ (0x40)
{ 0x00, 0x0c, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00 }, // ' (0x27)
{ 0x00, 0x0a, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00 } // " (0x22)
};
unsigned int fontLookup[256] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 29, 27, 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 0, 0, 0, 0, 0, 66, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
La libreria LCD12864RSPI serve per gestire l'LCD.
Ho notato che array più corti o persino fontLookup se tagliato non hanno problemi, quindi vorrei chiederti se c'è il modo di verificare se è la RAM e nel caso come posso ottimizzare il tutto.
Grazie.