Jo habe das gleiche bestellt aber schon gestern sorry. Aber es funktioniert ja soweit waren wir ja schonZitat von raid_ox
Jo habe das gleiche bestellt aber schon gestern sorry. Aber es funktioniert ja soweit waren wir ja schonZitat von raid_ox
Hi das neue zusammen gebaute Display funktioniert jetzt (endlich). Habe die lib von dir ausprobiert es lässt sich zwar compilieren abe aufen asuro passiert leider garnicht das display schaltet sich leider nicht ein.Zitat von raid_ox
Gruss Danjo
Hattest du mir nicht im icq gesagt dass alles geht, bis auf zeilenwechsel?
Macht es doch Damaltor raid_ox hatte versucht mir eine neue und eigene LIB zu schreiben mit dem namen LCD dritt letzter oder vorletzter text auf der seite 7. Display funktioniert gut habe es hin bekommen das er eine zeile runter geht allerdings fängt er bei der 2ten Zeile rechts an.
EDIT: Habe garnichts hinbekommen hatte ein andres display geingegeben
löl...
naja such mal im datenblatt, du kannst irgendwie senden an welcher stelle er schreiben soll.
JO irgendwie muss man das bei 3 sachen ändern nur blicke ich da nicht ganz durch verliere irgenwie den faden und wenn ich meine das ichs habe geht das display aus irgendwie mache ich da was falsch nur was weiss ich leider nichtZitat von damaltor
hm na du musst das alles wenn überhaupt dann ans ende des programms anfügen, um sicherzustellen dass das display bereits initialisiert wurde.
was muss denn geändert werden? hab das datenblatt grad net da...
Also habe Folgendes schreiben wollen und geändert
Davon schreibt er mir Genau I Love You den unteren teil lässt er voll kommen weg (leider) Damaltor hattest du ICQ geschaut?Code:#include <avr/io.h> #include "i2cmaster.h" #include "asuro.h" #define Display 0x74 // device address of Display, see datasheet int main(void) { int ret=0; Init(); i2c_init(); ret = i2c_start(Display+I2C_WRITE); if ( ret ) { i2c_stop(); StatusLED(RED); while(1); } Msleep(200); i2c_write(0x00); Msleep(200); i2c_write(0x01); Msleep(200); i2c_write(0x3E); Msleep(200); i2c_write(0x0F); Msleep(1000); i2c_write(0x07); Msleep(200); i2c_write(0x19); Msleep(200); i2c_stop(); ret = i2c_start(Display+I2C_WRITE); if ( ret ) { i2c_stop(); StatusLED(RED); while(1); } Msleep(200); i2c_write(0x40); //Kontroll Byte Msleep(200); i2c_write(0xC9); //I Msleep(200); i2c_write(0xA0); //leer Msleep(200); i2c_write(0xEC); //l Msleep(200); i2c_write(0xEF); //o Msleep(200); i2c_write(0xD6); //V Msleep(200); i2c_write(0xC5); //E Msleep(200); i2c_write(0xA0); //leer Msleep(200); i2c_write(0xD9); //Y Msleep(200); i2c_write(0xEF); //o Msleep(200); i2c_write(0xD5); //U Msleep(200); i2c_write(0xA0); //leer Msleep(200); i2c_write(0xC1); //A Msleep(200); i2c_write(0xCE); //N Msleep(200); i2c_write(0xC4); //D Msleep(200); i2c_write(0xA0); //leer Msleep(200); i2c_write(0xCD); //M Msleep(200); i2c_write(0xC9); //I Msleep(200); i2c_write(0xCB); //K Msleep(200); i2c_write(0xC1); //A Msleep(200); while(1); return 0; }
ändern muss ich S auf 1, S/C auf 1 und RL auf 0 denke ich mal bin mir aber net 100% sicher soweit wie ich lesen kann
hmm du schreibst einfach den text. also versucht er immer weiter zu schreiben. versuch mal, zwischen erster und zweiter zeile (also da wo du den zeilensprung haben willst) 10 leerzeichen einzufügen (!) also 10x den befehl für ein leerzeichen. ich glaub das war i2c_write(0xA0);.
soweit ich das verstanden habe, wird bei jedem geschriebenen zeichen ein zähler um 1 erhöht, um festzustellen wo das nächste zeichen hinkommt. und zwischen den zeilen sind einige zeichen, die nicht angezeigt werden. es könnte also sein, dass wenn du viele zeichen schreibst (dafür die 10 leerzeichen) du irgendwann in die nächste zeile rutscht, weil der counter bis zu dieser stelle weiter gelaufen ist. dann könnte man experimentell bestimmen, wie viele leerzeichen man schreiben muss um in die nächste zeile zu kommen. ist keine besonders elegante lösung, aber dürfte evtl gehen.
später kann man dann mal schauen, ich denke man kann auch direkt einfluss auf diesen adresscounter nehmen. aber probiers erstmal, mal sehn was passiert.
Lesezeichen