U8glib Display

Hallo,

meine KS0108 und T6963C funktioniert mit U8glib einwandfrei. Ich möchte mit Poti die Werte anzeigen lassen. Irgendwie funktioniert die Code nicht. Es zeigt weiterhin “Hello World” aus Beispielprogramm. Meine Programm wird nicht angezeigt. Kompiler spuckt auch keine Fehler überträgt problemlos.

Simple Code

#include <U8glib.h>

U8GLIB_KS0108_128 u8g(22,23,24,25,26,27,28,29,37,33,34,36,35); 		// 8Bit Com: D0..D7: 22,23,24,25,26,27,28,29 en=37, cs1=33, cs2=34, di=36, rw=35

int analogPin = 0;
int val = 0;

void setup() {
  u8g.setFont(u8g_font_unifont);
}

void loop() {
  val = analogRead(analogPin);
  u8g.setPrintPos(0,10);
  u8g.println(val);
}

Mi sembra strano. Dovrebbe darti qualche errore se non trasferisce lo sketch e per questo resta quello precedente. (o ha solo compilato ma non fatto l'upload???) Ciao Uwe

U8glib funktioniert etwas anders: Man muß die Graphik-Befehle immer in eine Schleife (picture loop) einbetten. Das sieht dann so aus:

#include <U8glib.h>
U8GLIB_KS0108_128 u8g(22,23,24,25,26,27,28,29,37,33,34,36,35); 		// 8Bit Com: D0..D7: 22,23,24,25,26,27,28,29 en=37, cs1=33, cs2=34, di=36, rw=35
int analogPin = 0;
int val = 0;

void setup() {
  u8g.setFont(u8g_font_unifont);
}

void loop() {
  val = analogRead(analogPin);
  u8g.firstPage();  
  do {
    u8g.setPrintPos(0,10);
    u8g.println(val);
  } while( u8g.nextPage() );
}

Über diese Methode spart man sich, bei gleichzeitiger Vermeidung eines kompletten Framebuffers im Ram, den Lesezugriff auf das Display. Das ist für ein KS0108 oder ein T6962 Display wegen des 8-Bit Interfaces nicht relevant, ist aber sehr hilfreich für Display-Controller mit SPI, die nur schreibenden Zugriff erlauben (ST7565, ST7920, SSD1306, UC1608, …)

Siehe auch hier:
http://code.google.com/p/u8glib/wiki/tpictureloop

Oliver