Linie am OLED Display 128x64 mit der u8glib verschieben?

OP #4346522
Lesenswert?
• ▲
▼
Hallo!

Ich benutze die u8glib um mein Display anzusteuern. Das funktioniert 
soweit ganz gut. Ich möchte nun Messwerte (1 Messwert pro Sekunde) am 
Display mit Linien (Balkengrafik) anzeigen.

Also der letzte Messwert ist die Linie ganz rechts und soll dann 1x pro 
Sekunde ersetzt werden, wobei der alte Messwert um 1 Stelle nach links 
verschoben werden soll.

Wie mache ich das mit der u8glib?

Die Funktion für eine vertikale Linie lautet:
1
u8g_DrawVLine(&u8g, x, y, h);

wobei x und y der Startpunkt und h die Höhe der Linie in pixel ist.

Die 1. Messung (das ist der Wert für h) soll am Display ganz rechts (x = 
127) dargestellt werden.
Die 2. Messung folgt ca. 1 Sekunde später und soll an der Stelle x=127 
dargestellt werden, während die letze (und alle vorhergehenden) 
Messung(en) um 1 Stelle nach links wandern sollen.

Ich suche also eine Funktion in der u8glib, wo ich eine Spalte nach 
links verschieben kann!
Gast #4347262
Lesenswert?
• ▲
▼
Das geht eigentlich nur über ein Array. Pseudo code:

n = Anzahl der Elemente im Array
a[0..n-1] = Array
Fülle alle a[0..n-1] mit 0

loop
  a[n-1] = Messwert
  Zeichne alle Werte a[0..n-1] mit U8glib
  Mit i = 0 bis n-2
   a[i] = a[i+1]

Mit ein bischen mehr Code kann man natürlich auf das Verschieben der 
Arrayelemente verzichten.

Grüße,
Oliver

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.