Die von dir angegebene Funktionssignatur ist nicht für Progmem (Flash), sondern für RAM. Daher der Zugriffsfehler LoadProhibited. Die für dich relevante Funktion findest du hier.
Die von dir angegebene Funktionssignatur ist nicht für Progmem (Flash), sondern für RAM. Daher der Zugriffsfehler LoadProhibited. Die für dich relevante Funktion findest du hier.
chruttli, kann passieren.
Ich habs nur überflogen und mich über die Struktur gewundert. Daher kam das.
Nun hast Du ja einen entscheidenden Hinweis, Betreffs des Aufbaus Deines Programms, gegeben.
Es gibt immer verschiedene Möglichkeiten ein Programm aufzubauen.
So verhält sich dann auch mit Objekten oder nicht Objekten. Wenn Du von Methode sprichst, bin ich da auch irritiert. Bis jetzt sehe ich nur Funktionen, ein Objekt fehlt mir noch.
Ist bei mir schon paar Jahre länger her, aber ich habe noch in Erinnerung, dass Java rein objektorientiert ist. Dort funktioniert alles über Klassen und Methoden (s. Objekte).
Nichts passiert, alles i.O.
MfG
Geändert von Moppi (21.08.2019 um 23:40 Uhr)
Im objektorientierten C++ wäre ein Lösungsansatz die Definition eines Images (hier als Struktur).
Danach muss dem display-Objekt noch beigebracht werden, wie Images gezeichnet werden:
Code:// Definition eines Images struct Image { const int16_t width, height; const char* text; const uint16_t* data; }; // Klasse MyTFT erweitert Adafruit_ILI9341 um Methode drawImage class MyTFT : public Adafruit_ILI9341 { public: void drawImage(int16_t x, int16_t y, Image i) { this->drawRGBBitmap(x, y, i.data, i.height, i.width); } }; // Bitmaps im Flash uint16_t wolke_bitmap[] PROGMEM = { 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0841 }; uint16_t sonne_bitmap[] PROGMEM = { 0x0861, 0x1082, 0x10a2, 0x18c3, 0x18e3, 0x2104, 0x2124 }; // Images erstellen const Image wolke = { 20, 25, "Wolke", wolke_bitmap }; const Image sonne = { 68, 2, "Sonne", sonne_bitmap }; // display-Objekt, dass mit Images umgehen kann, erstellen MyTFT display = MyTFT(TFT_CS, TFT_DC, TFT_RST); // Hier Pins eintragen //... void loop(){ //... display.drawImage(10, 10, sonne); }
@Moppi: ja, ich bin beruflich Softwareentwickler und arbeite den ganzen Tag objektorientiert Deshalb meine falschen Bezeichnungen. Ich meine natürlich Funktion und nicht Methode
@Sisor: Besten Dank für dein Beispiel. Das ist glaube ich so ungefähr das, wie ich es mir vorstelle. Ich werde es zu Hause testen.
Vielen Dank euch allen für die Hilfe.
Mit Sisor's Vorschlag funktioniert es bestens.
Gruess
Chruttli
Lesezeichen