Hallo, wie kann ich mein LCD 4*27 mit Bascom ansteuern? Bei der LCD Konfiguration in Bascom wird 4*27 nicht unterstützt. Wie kann man das dann anders machen? Christian
hast du ein display mit nur einem hd44780 controller (glaub ich nich) oder mit 2(glaub ich eher) mit 2 controller habe ich es nie geschafft das teil zum laufen zu bringen.....und mit einem controller gibts eigentlich nicht
muss 2 Controller haben, einer kann nur max. 80 Zeichen verwalten. Dementsprechend muss das Display 2 enable-Anschlüsse haben. Kenne mich mit Bascom nicht aus, aber versuche mal (falls vorhanden) erstmal das Display mit 4x40 zu initialiesieren/betreiben. Ansonsten: library anpassen.
Hi, da sind 2 Hdxxx drauf. Da musste wohl selbst die Ansterung programmieren . Mfg Dirk
man könnte doch die enable-leitung umleiten, oder? je nachdem, welche displayhälfte man ansteuern will. hat das schonmal jemand ausprobiert?
Ich nehme an dass du von den Pollin Display sprichst die es vor einiger zeit mal gab. Die sollten sich wie normale Displays ansteuern lassen, mit der kleinen ausnahme das man die oberen 2 zeilen wie ein "eigenes" Display und die unteren 2 zeilen wie ein "eigenes" display ansteuern muss. Dafür müsste es eigentl. reichen die 2 enable leitungen getrennt anzusteuern und den rest so wie immer. Beim Init kann man einfach beide E-Leitungen gleichzeitig benutzen und initialisiert somit 2 display auf einen schub. mfg Flo
@ Michael: ja, es sind zwei Controller drauf. Einer für die obere Hälfte und einer für die untere Hälfte @ Florian: Ja, das Display ist von Pollin. Gibt's aber bei ebay auch, nur teuerer :-) wie ist das gemeint: Beim Init beide E-Leitungen gleichzeitig benutzen? Und muss ich dann als 4*40 initialisieren, oder? mfg Christian
Hmm ich hab mit basic keine Erfahrung. Hab mir meine lcd-routinen alle selber gestrickt(in c). Theoretisch müsstest du beide als 2x27 initialisieren. Dabei reicht es einmal die init zu machen und einfach beide E-Leitungen gleichzeitig zu triggern. also init-code dann beide E auf high und dann wider auf low zurück. Und so weiter mit der komplettetn initialisation. wenn du auf die ober hälfte was schreiben willst benutzt du danach blos die E-Leitung für den oberen. Mit der unteren hälfte natürlcih genauso. mfg Flo
? es sind doch 2 E pins/leitungen am display zu belegen, aber es geht doch nur eine E-Leitung vom controller weg.also wie das machen, daß mit einem kabel vom controller kommend 2 kontakte gespeist werden?
üblicherweise wird das Display im 4bit-Modus an einem 8bit-Port betrieben (R/W, RS, E, 4Datenbits). Passt doch noch ein Bit für die 2. enable-Leitung rein. Ist ein reines Softwareproblem. Wie schon gesagt, falls der Compiler 4x40-Displays unterstützt, gehts problemlos.
Der Compiler unterstützt 4x40, nur wie bring ich dem das bei, dass jetzt auf einmal zwei E-Leitungen vorhanden sind?
nu bin ich aber buff: halten wir fest: wir haben am controller R/W, RS, E, 4Datenbits also 8 leitungen. am display haben wir 16 kontakte: R/W, RS, E, 4Datenbits das alles mal 2 (sind ja 2 kontroller) und wie ist es nu zu machen, daß ich beide displays anschließen und betreiben kann? mit lötbrücken? da das ganze ja in bascom laufen soll, fällt assembler etc flach. da es schon ein lib von bascom gibt für 2grafik-kontroller an einem avr, sollte da ein anfang zu suchen sein (lcd4e2.lib)
? @ Michael: wieso sollte man die Datenleitungen auch doppelt haben? Datenblatt - dann wird's verständlicher
@ Michael: noch was: R/W, RS, E, und 4Datenbits sind nur 7 Datenleitungen - R/W ist nur eine Leitung (R-read bzw. W-write)
When you want to have less code you need fixed pins for the LCD display. With the statement $LIB "LCD4E2.LBX" you specify that the LCD4.LIB will be used. The following connections are used in the asm code: Rs = PortB.0 RW = PortB.1 we dont use the R/W option of the LCD in this version so connect to ground E = PortB.2 E2 = PortB.3 the second E pin of the LCD Db4 = PortB.4 the data bits must be in a nibble to save code Db5 = PortB.5 Db6 = PortB.6 Db7 = PortB.7 Auszug aus der Bascom-Hilfe (und das , obwohl ich gar kein Bascom habe:-) Noch Fragen?
Fürs verständnis wärs sicher mal nicht schlecht sich sowas selber zu basteln. Wo ist da der Witz drann wenn man vorgefertigte routinen aus bascom nimmt? mfg Flo
Hm, warum nimmst du überhaupt einen Compiler? Kannst auch alles zu Fuss (d.h. in Assembler) machen und auch auf vorgefertigte Assemblerroutinen verzichten, alles selber schreiben. Ich persönlich sehe keinen echten Vorteil darin, jedesmal das Rad neu zu erfinden und Zeit zu verschwenden mit Sachen, die andere schon zur Zufriedenheit gelöst haben und dieses dankenswerterweise zur Verfügung stellen. Aber keiner hindert dich, dass selbst zu tun. Die Ursprungsfrage war: "wie kann ich mein LCD 4*27 mit Bascom ansteuern?"
@ Flo: du hast schon Recht, für's Verständnis wär's besser sich hinzusetzen und die Routine(n) selbst zu stricken, aber man braucht das Rad ja nicht zweimal zu erfinden, oder? Bin grad dabei die Lib anzupassen, denn auch das Vorgefertigte funktioniert nicht auf Anhieb! Bei mir zumindest ned :-) mfg Christian
Hmm das mit dem Rad zweimal erfinden stimmt schon so. Aber zumindest ich mach das weil mich die Prozesse und so weiter interessieren. Und ich empfind grad das Lösen jedes einzelnen problems als spannend. Und wenn man einmal die routine hat wird man sie nie wieder schreiben weil man sie dann einfach in ein .c packt und gut is;) mfg Flo
der witz ist, das es funktioniert - oder warum willst du das rad das 2te mal erfinden? wie gesagt, mit der lib habe ich streng nach vorschrift schon gearbeitet - das bild bleibt weg. da ich schon mit vielen "normalen" lcd's problemlos gearbeitet habe, bin ich bissel sauer... ja gut, hab mich ein bissel vertan in leitungssache, wie schon gesagt, ist eine weile her als ich frustriert aufgegeben habe, weil nichts auf dem bildschirm erschien.... ich denke mal es liegt an der verdrahtung des ganzen, vielleicht sollten wir mal einen schaltplan ausarbeiten ich hatte halt rs, r/w und e1 sowie D4-7 mit dem avr verbunden, in optionen das richtig passende dazu eingestellt und die lib eingebunden...dennoch kein reaktion am display liegts an meinen bescheidenen lötkenntnissen mit rm 1,27 oder ist da ein denkfehler bei mir? aber vielleicht finden wir ja jetzt eine lösung des ganzen hier....
Hab mein Display etz endlich soweit, dass ich auch den Text ausgeben kann, den ICH will!!!*puh* jetzt kann ich endlich ins Bett :-) -> Also, das mit der LIB hat bei mir nicht hingehauen, weiß nicht warum, aber hat irgendwie nicht funktioniert. Ich hab zwar in der lib was verändert (anstatt PortB -> PortD ) aber trotzdem ohne Erfolg... es wurde nix, rein gar nix angezeigt :( @ crazy horse: danke für den Tip mit 40*4. Das LCD ist als 40x4 initialisiert (mit E und E2) und funktioniert wunderprächtig. Danke nochmal an alle! mfg Christian
das hört sich ja gut an, kannst du auch sagen, wie du es genau gemacht hast. Ich meine die Verdrahtung und die software. Besten Dank!
Klar, kein Problem. Also so wie's ich jetzt gemacht hab, ist die Verdrahtung eigentlich egal (im Gegensatz zur LBX!!). Man verdrahtet das Ganze wie ein "normales" LCD, nur dass man eben zwei Controllerleitungen hat. Dementsprechend bei "Config Lcdpin" auch den zweiten Controller beachten !! Wichtig ist, dass man, bevor das LCD konfiguriert wird eine Variable "___lcdno" als Bit definiert! (mit der alias-Funktion kann man dann noch einen schöneren Namen vergeben :-) ) Mit dieser Variablen steuert man dann das Display. Bei ___lcdno = 0 wird der Controller für die obere Hälfte ausgewählt, bei ___lcdno = 1 der Controller für die untere Hälfte. Beispiel: . . . Dim ___lcdno as Bit Config Lcdpin = Pin, E = Portb.0 , E2 = Portb.1 , Rs = Portb.2 ,usw... Config Lcd = 40*4 Initlcd Cursor Off . . . das war's dann eigentlich auch schon :-) Wenn man dann was auf's LCD schreiben will, zuerst den Controller auswählen und dann ganz "normal" schreiben... Beispiel: ___lcdno = 0 Locate 1 , 1 Lcd "dein Text" 'Text in Zeile 1 Locate 2 , 1 Lcd "Text" 'Text in Zeile 2 ___lcdno = 1 Locate 1 , 1 Lcd "dein Text" 'Text in Zeile 3 ... Soviel zur Erklärung. Sollte was falsch oder unverständlich sein, einfach fragen! Wenn der Wunsch besteht, kann mein Testprogramm per email zugesendet werden, oder ich kann's auch hier irgendwo ablegen, wenn ich weiß wo. Ich hoffe, dass ich weiterhelfen konnte und danke an alle meine Helfer hier im Forum! mfg Christian (Heigman)
hi. super beschreibung. stells doch in die codesammlung, da isses am besten aufgehoben.
es gibt etz noch ne Ergänzung bzw. änderung zu meiner Beschreibung!! Es muss so lauten: ... Config Lcd 40*4 ___lcdno = 0 'ober Displayhälfte initialisieren Initlcd Cursor Off ___lcdno = 1 'untere Displayhälfte initialisieren Initlcd Cursor Off ... so funktioniert's 100% mfg Christian (Heigman)
perfekt, es geht wieder nicht..... die beiden reihen schwarzer balken bleiben schwarz. bin mir sicher, daß die verkabelung funktioniert. witzig ist, wenn ich ___lcdno mal als __lcdn (also nur 2 unterstriche) deklariere, gibts compilerfehlermeldungen, daß nicht genügt platz ist für "__lcdno"...ich liebe es... es muß wirklich keine andere lib eingebunden werden? ist es eigentlich egal wie ich die pinreihenfolge nehme? bei mir ist zb E2 =portb.2 und rs=portb.1... ich hab ein 2313 als versuchsboard genommen..... wenn du, christian, mal bitte an m_herr@gmx.de deine datei schicken könntest, wäre ich dir sehr dankbar... Besten Dank
nö, keine LIB eingebunden. Wenn die zwei Balken schwarz bleiben, wird das LCD höchstwahrscheinlich nicht richtig initialisiert! Die Pinreihenfolge ist egal. Mein Versuch läuft mit nem 4433er mit Eigenbau - Board mfg Christian
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.