Gast
#5349544
Hallo!
Gibt es eine Möglichkeit unter Arduino, ein 128x64 LCD im Loop nur immer
um einzelne Linien zu ergänzen und nicht jedes mal das ganze Bild von
neuem zu zeichnen?
Das Programm wird nämlich sehr langsam, wenn immer alle Linien neu
gezeichnet werden. Es würde maximal nur 1 Pixel hinzukommen von einem
Bild zum nächsten. Und da habe ich mir gedacht, ich kann dieses Pixel
zum bereits vorliegenden Bild hinzufügen.
Ich verwende die <U8glib.h> library. Derzeit zeichne ich das Bild nur
neu, wenn es die maximale y-Länge von 63 Pixel erreicht wird:
if (int(Faktor * Pulshoehen[Index]) > 62)
{
u8g.firstPage();
do
{
u8g.drawLine(0, 63, 127, 63);
u8g.drawLine(0, 0, 0, 63);
for (int i = 0; i < 128; i++)
{
u8g.drawLine(0+i, 63, 0+i, 63 - int(Faktor * Pulshoehen
[i])); // zeichnen aller Treffer
}
}
while( u8g.nextPage() );
Faktor = Faktor / 2; // Reduzierung des Maßstabs um die
Hälfte
}
Mit u8g.firstPage(); lösche ich aber quasi den Memory und ich bin
gezwungen, alle Linien neu zu zeichnen anstatt nur eine einzelne um 1
Pixel längere Linie hinzuzufügen.
Habe schon probiert, nur die drawLine-Befehle ohne while
(u8g.nextPage()) Schleife aufzurufen. Da zeichnet er aber einen Mist.
Und diese while-Schleife außerhalb des Loops zu positionieren geht ja
auch nicht...
Vielleicht könnt ihr mir ja helfen und sagen, ob dies prinzipiell
machbar oder eben nicht machbar ist.
Es ist ein I2c 128x64 Display mit nur 5 Anschlüssen (siehe Abbildung).
Danke im voraus, stoppi


