Ich versuche mit am FireBeetle OLED12864 Display und habe den Beispiel Sketch erfolgreich am laufen.
Ich möchte auf dem Display eine Variabel ausgeben, jedoch weiss ich nicht wie.
Anbei ein Ausschnitt mit dem fett markierten Text String gefolgt von meiner Variabel.
void drawFrame2(OLEDDisplay display, OLEDDisplayUiState state, int16_t x, int16_t y) { // Demonstrates the 3 included default sizes. The fonts come from DFRobot_OLED12864Fonts.h file // Besides the default fonts there will be a program to convert TrueType fonts into this format display->setTextAlignment(TEXT_ALIGN_LEFT); display->setFont(ArialMT_Plain_10); display->drawString(0 + x, 10 + y, "Variabel: ", 'test'); display->setFont(ArialMT_Plain_16); display->drawString(0 + x, 20 + y, "Arial 16"); display->setFont(ArialMT_Plain_24); display->drawString(0 + x, 34 + y, "Arial 24"); }
Als Fehlermeldung erhalte ich immer:
exit status 1 no matching function for call to 'OLEDDisplay::drawString(int, int, const char [11], int)'
Ich vermute es liegt an der Option "display->drawString"
Aber ich wüsste nicht was ich ändern müsste.
Da der Text 'Temperatur:' sich wohl nicht allzu oft ändern wird, könntest Du Diesen auch nur 1x ausgeben und Dich danach nur noch um die Temperatur kümmern.
Dabei wirst Du die alte Temperatur wohl in Hintergrundfarbe schreiben müssen, um Diese zu löschen und dann die Neue in Vordergrundfarbe.
Je mehr Du löscht und wieder neu schreibst, desto eher fällt ein Flackern auf (das Display ist kurz leer/schwarz).
Weitere Stolpersteine wird Es mit der Anzahl der Stellen der Temperatur geben - aber Das wirst Du wohl selber auch heraus finden
Der Sinn davon erschließt sich mir nicht wirklich oder soll das "scheinbare Einfachheit um jeden Preis" bedeuten?
Fast eine interessante Frage.
Mir schmeckt es auch nicht unbedingt, dass das Display Objekt als Pointer übergeben wird. Eine Referenz würde evtl näher liegen.
Allerdings dürfte es möglich sein, die betreffenden Methoden zu überschreiben, wenn man das ernstlich möchte.