include font 8x8 am Ende des Programms und Setfont Font8x8 im Programm vor der Textausgabe, sollte helfen, kenn mich aber mit Glcd noch nicht gut aus. Habe damit erst angefangen, da die ks108 Diplays keinen eingebauten Zeichesatz besitzen muss man erst einen im Programm laden.Jede andere größe geht natürlich auch - 8x8 ist nur ein Vorschlag.
Den Dataport:
Ddrb = &B11111111
Portb = &B11111111
Port auf Ausgang und pullups einschalten.Bei reinem Pixelsetzen wie mit Line,Circle und Box usw. ist die include nicht notwendig,nur für Text ausgaben.
Das Setzen des Datenports als Ein/Ausgang muss nicht sein. Sollte von Bascom selbst erledigt werden, da hier erst ein Byte (8 Pixel) vom Display gelesen wird, das zu ändernde Pixel wird gesetzt und das Byte wieder zurückgeschrieben.
Es folgt also ein ständiges Wechseln zwischen Input/Output.
(Ausser man hat im AVR genug Speicher, um den Displayinhalt zu speichern; bei nem Tiny aber eher nicht der Fall.)
Hallo!
Danke für eure Bemühungen, aber leider funzt es immer noch nicht, auch nicht miit Jaeckos Hex(erei)...
Ich habs jetzt mal mit einem Atmega8535 ausprobiert, aber da regt sich überhaupnix??(kann am MC liegen, der is irgendwie aweng komishc drauf )
Die Zuleitungen sind nur so 20cm lang...
Ich werd noch ein bisschen rumprobieren, I hätte auch AVR Studio da, falls jemand Code hat
Einige der Funktionen müsstest du da noch auskommentieren, da die weitere Module benötigen (z.B. die KS0108_Header).
Natürlich auch noch die _cfg.h anpassen.
Aber es sollte zumindest möglich sein, nach KS0108_Init() das Display mit KS0108_Fill(x) mit einem Muster zu füllen.
x = 0x00: Leer
x = 0xFF: vollständig gefüllt
x = irgendwas: Entsprechendes Bitmuster am Display sichtbar.
Wenn das geht, sollte man mit KS0108_PutS (x, y, Text, f); auch nen Text schreiben können.
(x, y = Startkoordinaten, Text als char*, f > 0 für Standard-Darstellung, f = 0 Invertierter Text)
Falls es Probleme bei der Inbetriebnahme des Codes gibt, einfach melden.
Wenns damit auch nicht geht, liegt der Verdacht nahe, dass irgendwo ein Hardwarefehler drin ist. Soferns da die gleiche "Qualität" ist wie bei den Pollin-GLCDs, dann kanns da auch sein, dass, wie bei mir, eine Leiterbahn zwischen Displaycontroller und Anschluss gebrochen ist. Also mal wirklich alle Bahnen vom AVR soweit zurückverfolgen (Durchpiepsen) wie es geht; am besten bis direkt vor den Controller aufm Display.
Hi Jaecko,
danke für den Code, ich hab aber leider überhaupt keine Ahnung von C oder was das auch immer ist^^
Ich hab mal alles Durchgepiepst, aber keine Fehler bei der Verkabelung oder irgendwelche kurzschlüse, die Leiterbahnen kann ich leider nicht überprüfen, weil das so "schwarze Tropfen" Controller sond, die man nicht sieht(nur der schwarze Tropfen )
Wenn du mir schnell sagst was ich an dem Code ändern müsste, dann versuch ichs mal!
Im Prinzip reichts, wenn du die _cfg.h anpasst (also deine Pins/Ports) und alle Funktionen auskommentierst, in denen irgend was mit myStrLeft o.ä. drin ist.
Also die Funktionen, die sicher gebraucht werden und mit dem vorhandenen Code funktionieren sollten:
Ganzen Text setzen:
void KS0108_PutS (ui8_t x, ui8_t y, char *chr, ui8_t color);
Display mit Bytemuster füllen
(Alle Zellen mit gleichem Wert befüllen)
void KS0108_Fill (ui8_t pattern);
Nachtrag: Hab mal das Programm, das die .hex erzeugt hat, als AVR-Studio-Projekt hier mit angehängt. Schau sicherheitshalber noch mal drüber, ob alle Pins/Ports stimmen.
Guten Tag ich hab mir auch mal so ein teil besorgt da das hier schon sehr gut funktioniert im Beitrag stell ich mal die DUMMY frage wie hoch ist der wiederstand zwischen Vout -5V und contrastpin zu wählen um eine schöne schwarze linie zu erhalten Da ich kein elektroniker bin kommt da nur ein wiederstand dazwischen oder besser ein poti ZB 5K mit Bein an 5V bein an Gnd und schleifer an contrast
Wenn ich mich richtig erinner, hat dieses Display nen Pin für negative Ausgansspannung (VEE). Zwischen dem und 5V das Poti legen (hab da 1k) und den Schleifer an den Kontrastpin. Dann einfach drehen, bis es gut aussieht.
Lesezeichen