Autor
|
Thema: USB-LCD Lowcost Edition (Gelesen 464106 mal)
|
|
hackspider
Wakü-Poseidon

Karma: +4/-0
Offline
Geschlecht: 
Beiträge: 412

|
Hallo Datendatenbank,
ich muss hier Olaf Recht geben, das Datenblatt des HD44780 wäre die bessere Anlaufstelle als das Forum hier. Treten dann spezielle Probleme auf helfen wir gerne weiter. Um Grundlagen der CLCD-Programmierung zu vermitteln ist das Forum hier allerdings nicht da. Schon aus dem Grund, weil sich viele Andere die Mühe gemacht haben diese Informationen anfängergerecht aufzuarbeiten.
Ganz ohne Hilfe lass ich dich jetzt aber nicht stehen .
Wenn dein LCD immer an der zweiten Stelle beginnt zu schreiben kann es sein, dass du ein Command mit dem Wert 129 sendest anstatt 128. Wenn du den Commandwert in einer Variable speicherst und mit dieser "arbeitest" kann es sein, dass ein Off-By-One Fehler vorliegt. Natürlich kann das auch passieren wenn du ein Leerzeichen vor dem eigentlichen Text stehen hast. Falls auch das nicht der Fall sein sollte kannst du ja mal nachschauen ob das D0 Signal während des Command senden auf HIGH geht. Wenn ja ist es ein SW-Problem.
Hier nochmal die Anlaufstellen für deine weiteren LCD Programmierungsversuche: - HD44780 Datenblatt - LCD Einführung
Diese Links solltest du selber finden können .
Falls dir das Datenblatt nicht verständlich sein sollte, empfehle ich dir den zweiten Link wenigstens einmal komplett durchzulesen. Dort wird alles behandelt was du brauchst und ist dazu noch anfängerfreundlich beschrieben.
Gruß hackspider
|
|
|
Gespeichert
|
|
|
|
Datendatenbank
LED-Tauscher

Karma: +0/-0
Offline
Beiträge: 27
Braucht Daten ...
|
Er geht nicht auf High. Das komische ist halt nachdem ich initialisier ist er schon an der zweiten Stelle. Also erst das (parameter weg):
USB_LCD_Connect USB_LCD_Init
und dann ist er schon an der zweiten Stelle. Und mein Command ist 128. So sieht mein Init aus:
USB_LCD_Init(1, 1, 1, 1, 1, 1, 1, 0, 0);
Hab schon probiert aus der ersten 1 eine 0 zumachen, da das ja für den Cursor Inc zuständig ist aber der bleibt an der zweiten Stelle.
Und übrigens. Man könnte vielleicht auch einen kleinen Artikel schreiben, für Entwickler wie man das USB LCD ansteuert. Oder nur den Quellcode vom Beispielprogramm aus dem Tutorial reinstellen. Dann wärs vielleicht einfacher.
Übrigens ist das ja hier, wie in jedem anderen Forum. Wenn man nach Hilfe fragt, wird nur wenig gegeben oder man wird weitergeleitet oder abgewiesen. Ich dachte immer ein Forum wär zum Fragen und Helfen da. Aber diese Zeiten haben sich wohl geändert. -.- Wie gehoben sich andere Leute immer fühlen. Nur weil sie es schon geschafft haben das anzusteuern oder das beliebteste Programm geschrieben haben ...
Vielleicht könntest du noch in deinem nächsten Beitrag mir noch eine einfache Frage beantworten. Werden Sonderzeichen auch über Command ausgegeben?
|
|
|
Gespeichert
|
Chuck Norris kann in jedem Byte 257 verschiedene Werte speichern.
|
|
|
hackspider
Wakü-Poseidon

Karma: +4/-0
Offline
Geschlecht: 
Beiträge: 412

|
Hallo,
es ist halt so, dass die Ansteuerung des USB LCD mehr oder weniger identisch mit der klassischen Ansteuerung ist. Für die Ansteuerung auf die klassische Art (direkte Schnittstelle via LPT oder IO-Ports eines Mikrocontrollers) wurden alle Fragen schon auf die ein oder andere Weise durchgekaut, was spätestens beim dritten mal für den Erklärer furchtbar ermüdent ist (nicht so für den Fragensteller). Aus diesem Grund wurden auch unzählige HowTos, Tutorials und FAQs verfasst um Einsteigern alle aufkommenden Fragen zu beantworten. Diese ganzen Artikel sind hier auf die USB LCD Lösung ohne weiteres übertragbar. Das einzige was von Einsteiger erwartet wird ist, dass er diese Angebote nutzt.
Das Anfänger gerne auf die bestehenden Ressourcen verwiesen werden, hat in der Regel (jedenfalls in diesem Forum) nichts mit Arroganz oder Überheblichkeit zu tun. Anstatt gar nicht auf die Fragen zu antworten, möchte man dem Fragensteller zumindest in die richtige Richtung lenken, sodass man ihn nicht ganz im Regen stehen lässt. Das ich mir im Moment die Zeit nehme dir auf deine Fragen so ausführlich zu antworten versteh ich selber nicht ganz, da bei mir in den nächsten Tagen wieder Klausuren anstehen. Viele, die die hier alles genau erklären könnten, sind durch andere Projekte oder Arbeit ähnlich ausgelastet und sparen sich die Energie für andere Sachen.
Kommen trotz Studiums der verfügbaren Einsteigerartikel Fragen auf oder bei der Implemtierung entsteht eine Situation die sich der Anfänger nicht erklären kann (z.B. wie deine Problem mit dem Cursor an der zweiten Stelle) greifen wir dir hier so weit wir können unter die Arme.
Was die Dokumentation des USB-LCD angeht so ist das für den durchschnittlichen Softwareentwickler durchaus ausreichend, dass sich ein Anfänger damit allein gelassen fühlt kann ich aber auch nachvollziehen. Wenn sich jemand findet, der sich der Sache annimmt und, einen von dir angesprochenen Artikel, verfasst wäre das eine tolle Sache, jedoch glaube ich nicht, dass sich hier jemand in näherer Zukunft damit befassen wird. Die Veröffentlichung des Sourcecodes für das Testprogramm gestaltet sich schwierig, weil Ast(der Verfasser des Testprogramms) das letztemal im Juni diesen Jahres hier aktiv war.
Um deine "einfache" Frage zu beantworten: Alle Aktionen die du brauchst (damit sind die Sonderzeichen eingeschlossen) werden mit einer Kombination aus Aufrufen aus USB_LCD_Command() und USB_LCD_Data() umgesetzt. Bei diesem Thema leite ich dich nochmals hier hin weiter. Dort ist das besser erklärt als ich das jetzt auf die schnelle könnte.
Um dir bei deinem konkreten Problem zu helfen.
Bei mir steht der Cursor mit diesen Aufrufen an erster Stelle:
USB_LCD_Connect(); USB_LCD_Init(1, 1, 1, 1, 1, 1, 1, 0, 0); USB_LCD_Command(128,0);
sollte das bei dir im Programm gleich aussehen und der Cursor steht nicht an der ersten Stelle, so ist der Fehler nicht im Programm zu suchen . Wo jetzt genau der Fehler liegt ist von meiner Position aus nicht mehr auszumachen. Wenn du die Firmware und die DLL nicht veränderst hast, wüsste ich nicht mehr worin dieses Phänomen begründet ist.
Gruß hackspider
|
|
|
Gespeichert
|
|
|
|
Datendatenbank
LED-Tauscher

Karma: +0/-0
Offline
Beiträge: 27
Braucht Daten ...
|
mit "deinem" Code:
USB_LCD_Connect(); USB_LCD_Init(1, 1, 1, 1, 1, 1, 1, 0, 0); USB_LCD_Command(128,0);
Bleibt der Cursor immer noch an der zweiten Stelle. Das hexfile ist das aus dem Tutorial und somit unverändert. Die DLL blieb auch in Ruhe.
|
|
« Letzte Änderung: November 3, 2010, 11:40:07 von Datendatenbank »
|
Gespeichert
|
Chuck Norris kann in jedem Byte 257 verschiedene Werte speichern.
|
|
|
|
|
|
chickenwingattack
LED-Tauscher

Karma: +0/-0
Offline
Geschlecht: 
Beiträge: 35
Ich liebe dieses Forum!
|
Hi chickenwingattack, Port ist auf LCD gesetzt und LCDType=5
Ich hoffe der Port ist auf USB gesetzt ;-) Gruß hackspider
hahaha klar meinte USB ;-)
|
|
|
Gespeichert
|
Ich sage meine Meinung und wer was dagegen hat kann mich mal!!
|
|
|
|
hackspider
Wakü-Poseidon

Karma: +4/-0
Offline
Geschlecht: 
Beiträge: 412

|
Hallo Datendatenbank,
der Testsigning Mode muss immer an sein, wenn du dein USB-LCD verwenden willst (nach meiner Anleitung).
Seit Version 1.2.0.0 der libusb-win32 soll eine Signatur vorhanden sein, die von M$ auch ohne den Testsigning Mode akzeptiert werden soll. Ich hatte aber bis jetzt noch keine Zeit mir das genauer anzuschauen.
Gruß hackspider
|
|
|
Gespeichert
|
|
|
|
|
hackspider
Wakü-Poseidon

Karma: +4/-0
Offline
Geschlecht: 
Beiträge: 412

|
Hi,
wenn dich das Wasserzeichen stört empfehle ich dir das Archiv aus meinem Post mal ein bisschen genauer anzuschauen . Da drinne gibt es ein Ordner names "RemoveWatermark" der dir das Wasserzeichen entfernt auch wenn der Testsigning Mode angeschaltet ist. Hilfreiches Tool für Entwickler.
Wie schon oft erwähnt ist der Testsinging Mode nur eine Krücke um das USB-LCD zum Laufen zu bringen, eine Lösung die darauf verzicheten könnte wäre natürlich optimal. Ich habe erhlichgesagt keine Ahnung was nötig is um einen Win7 x64 akzeptierten Treiber mit der libusb zu erzeugen. Wie schon gesagt hab ich dafür im Moment aber keine Zeit. Ich würde auch gerne an meinem "USB-Multicontrol" weiterarbeiten (Hardware is fertig, SW nur prototyped) aber ich bin halt im Moment einfach zu stark mit anderen Sachen ausgelastet. Solange muss man halt auf den Workaround zurückgreifen oder vielleicht findet sich jemand anderes der Sich dafür einsetzen möchte.
Gruß hackspider
PS: Die libusb-win32 gibt es hier
|
|
|
Gespeichert
|
|
|
|
|
|
|