Hallo
Letzte Woche habe ich ein wenig mit PROGMEM und dem Uno herum gespielt
um Speicher zu sparen. Eine nette Sache die in Pascal so nicht geht.
Heute wollte ich das ganze in eine Klasse verpacken und leider geht das
nicht so wie ich mir das vorgestellt habe.
Ich erlaube mir das hier zu posten weil es mehr ein Programmier Problem
ist und kein eigentliches Arduino Problem
struct tButton {
uint16_t x;
uint16_t y;
uint16_t h;
uint16_t w;
uint16_t KeyCol;
uint16_t Shadow;
uint16_t SColor;
uint16_t TColor;
};
const struct tButton KeyButton[40] PROGMEM = { ........ };
// Die Function mit der ich den Programm Speicher auslese
tButton KeyboardClass::SetFromPROGMEM(uint8_t Value)
{
tButton Result;
Result.x = pgm_read_word(&(KeyButton[Value].x));
Result.y = pgm_read_word(&(KeyButton[Value].y));
Result.h = pgm_read_word(&(KeyButton[Value].h));
Result.w = pgm_read_word(&(KeyButton[Value].w));
Result.KeyCol = pgm_read_word(&(KeyButton[Value].KeyCol));
Result.Shadow = pgm_read_word(&(KeyButton[Value].Shadow));
Result.SColor = pgm_read_word(&(KeyButton[Value].SColor));
Result.TColor = pgm_read_word(&(KeyButton[Value].TColor));
return (Result);
}
In der Arduino Routine funktioniert das Wunderbar, leider nicht als
Klasse. Da wird nur Blödsinn ausgelesen. Wo mache ich meinen Ansatz
Fehler ????