Probiere mal marvin's code oder mein code...
Druckbare Version
Probiere mal marvin's code oder mein code...
der fehler war das ich alle quelltexte in test.c gemacht habe statt in test_i2cmaster.c das war ein gedanken fehler von mir sorry ich hatte den letzten quelltext von m.a.v.i.n in test_i2cmaster.c gemacht und da hatte er mir immer fehler angezeigt und bei test.c nicht daher kahm das
habe deinen ersten genommen da geht auch das display aus
was meinst du mit "aus" ??
Ich habe die hex geflasht gewartet da ist nichts passiert dann habe ich am kontrasst poti rungedreht da ist nichts gegangen dann habe ich den kontrast ganz hoch gemacht und asuro neu gestartet dann geht das display an sobald die status LED grün wird geht das display ca. ne halbe sec später aus.
edit: wenn ich deine test2 nehme geht das display nicht aus
Sooo ich habe neuigkeiten. habe Danjo soeben diesen Code geschickt:
und das display ist an. einige zeichen sollen sichtbar sein, allerdings wohl etwas komisch... mal sehn, danjo will fotos liefern evtl.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(0x2E);
Msleep(200);
i2c_write(0x0E);
Msleep(200);
i2c_write(0x06);
Msleep(200);
while(1);
return 0;
}
mal sehn, werd jetzt mal display clear senden und so weiter, evtl ein paar zeichen.
das problem bis jetzt war zum einen dass danjo den quellcode ins falsche file gepackt hat, und dass bei der initialisierung das bit "G" null war, was aber bedeuten würde dass das Display an +6 und -5 Volt angeschlossen wäre. wenn das bit 1 gesetzt wird, dann passt es auf die schaltung von danjo.
wir werden sehn was als nächstes kommt =)
Bild hier
so gannz rechts oben in der ecke und ganz links in der ecke die zeichen sind dazu gekommen und den kontrast musste ich fast ganz zurück machen
OK Vielen vielen lieben Dank für eure hilfe und gedullt es war einzig und allein mein Fehler jetzt funktionierts und sorry wegen meinem unwissen
Soo und wieder Gibts ein update.
dieser codesollte theoretisch PHHHHH anzeigen. angezeigt wird aber HdHHHH. naja wenisgtens so ähnlich... und der cursor ist dahinter zu sehen, blinkend.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(0x2E);
Msleep(200);
i2c_write(0x0F);
Msleep(1000);
i2c_write(0x06);
Msleep(200);
i2c_stop();
ret = i2c_start(Display+I2C_WRITE);
if ( ret )
{
i2c_stop();
StatusLED(RED);
while(1);
}
Msleep(200);
i2c_write(0x40);
Msleep(200);
i2c_write(0x50);
Msleep(200);
i2c_write(0x48);
Msleep(200);
i2c_write(0x48);
Msleep(200);
i2c_write(0x48);
Msleep(200);
i2c_write(0x48);
Msleep(200);
i2c_write(0x48);
Msleep(200);
while(1);
return 0;
}
drückt uns die daumen!
oh jo das kann allerding ein verkehrterummes p sein und manchmal kommt nur dHHHHH
edit: das er HdHHHH geschrieben hat war ein fehler wieder von mir ich hatte von ner tempo packung unter der platiene gehabt zur isolierung jetzt habe ich isolier band drunter jetzt kommt nur noch dHHHH
Zeigt er jetzt schon was? cool.
Ich werde ein bibliothek speziell für dich schreiben danjo00 ^^.
das problem mit dem P: probiere mal msleep zu verkürzern. 1ms reicht schon
Edit:: falsch gesehen ^^[/code]
So un noch nen update...
DAS DING GEHT EINWANDFREI!
der vollhorst der das datenblatt verfasst hat, in dem als beispiel der text PHILIPS ausgegeben werden soll, den ich mit PHHHHH vereinfacht habe, den UMGEKEHRTEN ZEICHENSATZ benutzt, der dazu da ist dass man das display überkopf lesen kann...
es wird also korrekt PHHH angezeigt, nur dass alle buchstaben auf dem kopf stehen...
Danjo, bitte probier mal dieses Programm... und wenn du es schaffst, dann schau dir vorher den code NICHT an, in den kommentaren steht was ausgegeben wird (werden sollte)
viel glück...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(0x2E);
Msleep(200);
i2c_write(0x0F);
Msleep(1000);
i2c_write(0x06);
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(0xC8); //H
Msleep(200);
i2c_write(0xE1); //a
Msleep(200);
i2c_write(0xEC); //l
Msleep(200);
i2c_write(0xEC); //l
Msleep(200);
i2c_write(0xEF); //o
Msleep(200);
i2c_write(0xA0); //Leerzeichen
Msleep(200);
i2c_write(0xC4); //D
Msleep(200);
i2c_write(0xE1); //a
Msleep(200);
i2c_write(0xEE); //n
Msleep(200);
i2c_write(0xEA); //j
Msleep(200);
i2c_write(0xEF); //o
Msleep(200);
i2c_write(0xA1); //!
Msleep(200);
while(1);
return 0;
}
raid_ox: die bibliothek bau ich gerad auf, lass dann später mal deine (für die DOG- und HD44780 Displays) und meine (die für dieses komische ding von Danjo =) zusammentragen, dann machen wir eine große LCD Library.
edit: Danjo mach ein FOTO!!
Vllt, können wir ja eine Essential LCD library und Spezifische machen.
Hast du mein library schon angeguckt? man muss eigentlich nur bei SetDataWrite ändern und SetIOLCD wegmachen
ja stimmt. aber die komplette initialisierung ist anders, und auch der zeichensatz unterscheidet sich komplett.
Hast du die v0.2 gesehen? die initialisierung ist jetzt im define veränderbar
hmm das ist nicht schlecht. aber lass mich erstmal bissl damit experimentiren =)
muss erstmal son paar sachen austesten, dann machen wir das. aber jetzt geh ich erstmal pennen, muss morgen früh raus.
Wenn du dein (noch kömischer) LCD kaufst, wäre ja lustiger, dass wir 3 verschiedene typ von lcd haben ^^.
Btw. hast du mit Danjo00 privat gechattet, oder wie hast du es ihm geholfen?
ja hab mit ihm per icq gesprochen. lange nächte =)
so, bis morgen, ich fall fast um vor müdigkeit. aber son kleines erfolgserlebnis hilft beim einschlafen
Hi thx sehr nett von dir das lcd funktioniert einwandfrei bis auf kleinere zeichen die er manschmal vertauscht.^^Zitat:
Zitat von raid_ox
*gg* zuerst kam Hallo Danjo nach neu start kam !Hallo Danjo^^ er hat wohl ein bisschen schwirigkeiten das kann bestimmt am pullup ligen oder? Habe heute die zwei 4,7k ohm wiederstände bekommenZitat:
Zitat von damaltor
ok muss mich korrigieren wenn ich 36 buchstaben inc leerzeilen schreiben will kommt sowas bei raus
Bild hier
der überspringt eine komplette zeile und zwar die zweite die jetzt zwar dargestellt wird aber wenn ich schreibe *Hallo* AE b Danjo schreibt er nur
Bild hier
Trotz mehr maligen neustart. Kann das am Pullup ligen?
Eine blaue LED als hinter grund würde bestimmt nicht schlecht ausehen^^ mache das dann über die front led das wird ja so oder so nicht genutzt oder?
ja das mit der led kannst du machen. ich vermute, dass diese fehler an den zeilensprüngen liegen: "Hallo Danjo!" hat 12 zeichen, +corsur = 13. da das display nur 12 zeichen anzeigen kann, könnte es sein dass es nicht geht, wiel ich NO SHIFT eingestellt hab. versuch mal, den letzten i2c_write-befehl zu entfernen, und probiers dann nochmal.
könnte sein, dass es hilft, wenn du den asuro ausschaltest und dann das display kurz entfernst und wieder aufsteckst, so dass es komplett von der stromversorgung getrennt wird (ich glaub out+ und out- stehen unter dauerstrom, oder?)
aber wir nähern uns...
dann funktionierts auch nicht so ganz ich denke wenn man ein leerzeichen noch hinter danjo machen würde gehts jop so funktionierts. Er macht halt öfters das letzte zeichen als erste hin und wenn das letzte zeichen ein leerzeiche ist ist das ja net sooo schlimm
Das erste bild ist wie er es richtig schreibt
Bild hier
das zeigt halt wie er das leerzeichen als erstes macht
Bild hier
wenn ich das display raus nehme und 10 sec warte dann noch mal rein mache und asuro starte schreibt er es immer richtig
Hi, zieg mal die letzte zustand von deinem code, ich will es gerne wissen, was ihr bisher gemacht habt
den letzten code siehst du 5 posts über diesem, der einzige unterscheid ist dass der letzte i2c_write befehl entfernt wurde um ein fehlerhaftes scrollen des displays zu verhindern.
Sieht so aus als wenn das mit dem leerzeichen wirklich an irgend einer restspannung liegt. schalte den asuro mal ab, und warte 10-20 sekunden, um sicherzugehen dass alle kondensatoren und elkos leer sind. wird es dann auch richtig geschreiben?
Jop wenn ich das display ab mache und 10 sec warte und wieder rein mache schreibt er es richtig. obwohl er in mom nichts schreibt :-( habe irgendwas falsch gelötet
Hi, ich hab ne [test] library gemacht für dein LCD, probiere mal.
Das c-programm heißt lcd_test.c öffne das und compilieren.
Ich bin aber nicht ganz sicher ob es geht
sorry irgend wo habe ich ein kurtzen drin habe alles neu gelötet weil die verkabelung eigendlich nur provesorich war aber jetzt funktionierts nemmer ich habe gedacht das es an den batterien hing aber das display ist direkt an sobald ich auch den asuro an mache und die status led noch gelb ist wenn ich am kontrast potie drehe kann ich es mit aus machen irgendwie komich ich wechsel morgen mal das potie vllt ist es mir ja durchs löten kaputt gegangen
da würd ich aber spontan eher auf das display tippen...
sei bloß vorsichtig dass du nix verschmorst...
jo ich poste noch mal wenn ich alles geprüft habe
ich glaube es ligt an den pins vom lcd wenn ich dran wakel passiert was
hmm... vorsichtig (!) nachlöten? was passiert denn?
mal ne doofe frage: das poti hast du nicht aus versehen verdreht oder?
???wie verdreht falschrum eingelötet oder zu viel dran gedreht? es geht damit an und aus und es ligt jetzt difinitiv am pin 1 der ist mit jetzt abgerissen
hast du dein LCD immer noch nicht wieder zusammengelötet?
doch aber es funktioniert nicht mehr habe mir jetzt ein Neues Display und erweiterungs plantinen bestellt ich schicke es damaltor es ist ein pin abgerissen und wenn ich dran wackel geht das display an und aus irgendwas stimmt da nicht ich finde nur nichts der elektriker auf meiner schicht auch nicht vllt mal auf ne neue Platine löten aber egal wenns damaltor es wieder zum laufen bekommt brauch er sich dann wennigstens kein neues mehr zu kaufen^^ ( Erlich gesagt ist mir das jetzt zu dumm noch weiter daran rum zu basteln und zu schauen ich will das es endlich funktioniert und verliere bald die nerven und das mache ich ja bald schon bei der arbeit weil es leute gibt die vor mir schaffen, 31-35 jahre diesen beuf machen und zu dumm sind es richtig zu machen und ich der der gerade mal 1/2 jahr da schafft muss dann alles ausbügeln und das für 8 euros/h (die bekommen ca. 16eu.) ich müsste eher Km geld bekommen wegen der ganzen renne rei als für die spulen die wir produsieren(Pirelli reifen cord) )
hast du wieder das gleiche bestellt?
genau das hab ich auch grad gedacht... =)
Ich empfehle mal ein HD447xx kompatiblere LCD, sonst können wir wieder wenig helfen. Außerdem bei dem Teil muss du ja dein fototransistoren auslöten. bei pcf8574 muss du es nicht machen
naja, wie gesagt, ob die transistoren dann noch brauchbare werte liefern ist die frage (brücke ber pullup widerstände)
Nein, ich meine, er könnte immer noch die fototransistoren benutzen wenn er den lcd nicht an hat