Commands OLED SPI / I2C 0.96 SSD1306

Gast #3989070
Lesenswert?
• ▲
▼
Hi

Ich vermisse - oder hab ihn noch nicht gesehen - den Command Instruct 
für eine Zeile zu löschen:

ALso:
Ich schreibe
1
display.setCursor(0,0);
2
println("Hallo Welt!");
3
println("Wie geht es?")
4
display.display();

Ausgabe:
Hallo World!
Wie geht es?


Jetzt will ich die erste Zeile überscchreiben:
1
display.setCursor(0,0);
2
println("Hello  World!");
3
display.display();

der alte Text steht noch da
der neue wird drüber geschrieben, alles "verlaufen"

ich will keinen
1
display.clear();

aufrufen, eher die Zeile clearen.
lauter leerzeichen zuvor zu schreiben bringt nichts
da er nur die pixel für den Platz den das leerzeichen braucht
ausfüllt ( wird dann schwarz ) aber nicht den rest.

Gibt es den Befehl nicht für  das SSD1306 oder hab ich was übersehen.
Die Command constructs oben sind eher pseudo zum bessern erklären.

lg rudi ;-)
Gast #3989834
Lesenswert?
• ▲
▼
@rufus, stefan, ronny

die beigelegte lib von adafruit kennt "zeile" löschen nicht.
wundert mich  - ok - frage ist beantwortet so weit - werde eine funktion 
ergänzen. vielen dank an euch!!

u8glib schauhe ich mal nach

lg rudi ;-)
Gast #3989847
Lesenswert?
• ▲
▼
Ok gelöst:
1
display.setCursor(0,0)
2
display.setTextColor(WHITE);
3
display.println("Hello World!");
4
display.display();
5
delay(1000);
6

7
display.setCursor(0,0) // (spalte/zeile)
8
// display.setTextColor(WHITE);
9
display.setTextColor(WHITE,BLACK);// danke stefan! 2te parameter 'schwarz' 
10
display.println("Hallo Welt!");
11
display.display();
12
delay(1000);

danke!

lg rudi ;-)
Gast #3989870
Lesenswert?
• ▲
▼
Dieses Vorgehen kostet aber auch nicht weniger als das clear zu Beginn. 
Der Inhalt wird im Buffer aufgebaut und mit dispay() in die Anzeige 
gejagt, dadurch flackert nichts falls das die Bedenken waren.
Und wenn löschen dann ist ein schwarzes Rechteck zu zeichnen schneller, 
die Zeichenausgabe ist wesentlich aufwändiger.
Gast #3989888
Lesenswert?
• ▲
▼
JojoS schrieb:
> Dieses Vorgehen kostet aber auch nicht weniger als das clear zu Beginn.

Ne da hast Recht,
aber ich hab nicht alles geschrieben:
wenn ich dann vier Zeilen habe
und möchte nur Werte in der ersten Zeile updaten
dann ist ein clear da ungünstig da ich den ganzen inhalt wieder 
schreiben muss.

> Der Inhalt wird im Buffer aufgebaut und mit dispay() in die Anzeige
> gejagt, dadurch flackert nichts falls das die Bedenken waren.

genau das wars. hier flackert es - es baut sich sichtbar nicht so 
schnell auf sodass das flankern nicht auffallen würde.

> Und wenn löschen dann ist ein schwarzes Rechteck zu zeichnen schneller,
> die Zeichenausgabe ist wesentlich aufwändiger.

mit der Angabe wo der Cursor steht, dachte ich, wäre es leichter, mit 
Text zu arbeiten, ein rechteck müsste ich die koordinaten erst wieder 
errechnen sodass bei gesetzter texthöhe auch alles dahinter 
verschwindet.

aber ich werde das rechteck mal probieren, danke!!

lg rudi

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.