Hallo ! Ich habe mir bei Pollin ein 27x4 LCD Display gekauft. Das war für 4,95 Euro recht günstig. Allerdings hat es 2 unabhängige HD44780 sodass man also 2 Enable-Leitungen hat anstatt einer einzigen. Zum programmieren meiner AVR verwende ich Bascom AVR, weil's eigentlich recht schnell zum gewünschten Ziel führt. Nun die Frage: Ist es möglich, mit Bascom die beiden Controller mit den bereits vorhanden LCD-Funktionen zu steuern? Gibt's da vielleicht irgendeine einfache Lösung? Ansonsten kann ich nur eine Hälfte des LCDs verwenden oder beide Enables verbinden und dann alles doppelt anzeigen... beides sind keine schönen Lösungen. Vielen Dank im vorraus!
Hallo MyCo, ich hatte das gleiche Problem mit einem 4 x 40 Zeichen Display. Es hat ebenfalls 2 eigene Controller und 2 Enable Eingänge. Aber wenn du mit Bascom arbeitest, sollte die Lösung kein Problem sein. In dem Library-Ordner befindet sich eine Datei Namens "lcd4e2.lib" . Mit dieser Routine habe ich mein Problem schnell lösen können. Wenn du die Datei mal mit einem Editor öffnest, findest du dort alle Infos, die du brauchst. mfg Matula
Hallo ! Ich habe von der Lib schon was gelesen. Ich verwende aber nur die Demoversion von Bascom, und da ist nur die compilierte Version der Lib dabei. Und die läuft nicht mit einem Mega8, weil die Ports für den Quarz verwendet werden. Danke für die Antwort. MfG
Hallo MyCo, Mir war gar nicht bekannt, das das Kompilieren von Libs in der Demo-Version nicht möglich ist !!! Ich war bis jetzt im Glauben, das alle Optionen genau so funzen, wie bei einer Vollversion, nur das eben die maximale Code-Länge auf 2KB begrenzt ist. Bist du dir da auch ganz sicher ?? An sonsten ist es nämlich kein Problem, die Lib so umzuschreiben, das du jeden beliebigen Port benutzen kannst; ist auch im Listing ganz gut kommentiert. Ich meine damit aber nicht die einzelnen Bits eines Port's, sondern den geamten Port mit seinen 8 Bits!! Meine Aussage bezieht sich aber nur auf den von mir verwendeten 8535 und den 4433. Mit den Megas hab ich nichts gemacht..... Kannst mir ja mal deine angepasste Lib mailen, ich würde sie dir kompileren; sollte kein Problem sein ! bis dann Matula
Hallo ! Ich bin mir da sicher, weil bei der Demo die lib nicht dabei ist, sondern nur die lcd4e2.LBX. Und in der LBX kann ich nur generell das Port ändern. Was mir allerdings nichts bringt, da ich keine kompletten 8 Pins an einem Port frei habe sondern maximal nur 6 Dann habe ich noch ein weiteres Problem. Bascom scheint aus irgendwelchen Gründen kein 27x2 oder 27x4 Display zu kennen. Auch wenn ich eine 20x2 Konfiguration verwende schreibt der den Text bis an den rechten Rand (und darüber hinaus), bevor er in die nächste Zeile wechselt. Aber das is nur ein kleineres Problem. MfG
Die "lcd.lbx" in der Demo hat noch ein anderes böses Problem: wenn man ein "HD44780-kompatibles" Display günstig geschossen hat, dass nicht die Standart-Speicheradressen benutzt, werden die Texte nicht in der richtigen Zeile dargestellt. Meist Zeile 1 dann Zeile 3 anstatt Zeile 2. Unter C kann man das Problem mit P.Fleury´s lcd.h korrigieren. Ist das mittlerweile in der kommerziellen Version von Bascom in der LCD.lib auch möglich oder wie wäre die Alternative (unter Bascom!)?
@ MyCo, Was ist z.B., wenn du mal 40x2 Zeichen Displays anwählst, aber die einzelnen Zeilen nur bis zum 27. Zeichen benutzt? Ist es aber nicht auch so, das du die Display-Einstellungen im Option-Menu gar nicht mehr brauchst, wenn du eine LCD-Lib einbindest?? Ich meine mal gelesen zu haben, das so ist. Hab mir jetzt noch mal meine "lcd4e2.Lib" angeschaut. Ich bin der Meinung, darin kannst du auch die Zuordnung der einzelnen Portbits frei definieren. @Ich, von der Lösung deines Problems mit P.Fleury´s lcd.h hab ich schon gelesen, da ich aber mit C nichts am Hut habe, habe ich mich auch nicht weiter damit beschäftigt. Es muss doch aber möglich sein, deine Display-Controllertype mit den Libs von Bascom vernünftig zum Funzen zu bringen. Ich selber benutze ein "HD44780-kompatiblen" Kontroller vom Typ "KS0066" , und das Ganze 2-fach; d.h., auf dem Display sind 2 dieser Kontroller vorhanden, die eben mit den beiden "Enable's" selektiert weren. Nach dem Einbinden der Lib hast du ja auch einen neuen "Display-Enable-befehl", mit dem du die beiden (2-zeiligen)Displays getrennt anwählen kannst. Es müsste doch funzen, wenn du nach der 1.Zeile von Display "1" die 1. Zeile von Display "2" selektierst, und dann weiterschreibst..??.. Kannste aber alles mit der "lcd4e2.Lib" machen.... cu Matula
@Matula Was ich wissen wollte, kann man in der LCD.lib der kommerziellen Bascomversion die Speicheradressen frei!!!! wählen? Es gibt ja auch 6x20 oder 8x20er Displays, da wirst Du nichts ausrichten können mit Deinem Vorschlag. "lcd4e2.Lib" existiert in der Demo nicht, nur die vorkompilierte lbx.
@Matula: Wie gesagt, es ist nur ein kleineres Problem. Wenn es nicht anders geht, würde ich das auch so machen. > Ist es aber nicht auch so, das du die > Display-Einstellungen im Option-Menu > gar nicht mehr brauchst, wenn du eine > LCD-Lib einbindest?? Das kann gut möglich sein. So genau habe ich mich nicht damit befasst. Aber auch ohne dass ich eine LCD-Lib verwende, haben die LCD-Grössen-Einstellungen bei den Compiler-Optionen keinen Einfluss. Das ist mir auch irgendwie ein Rätsel :-)
wie sieht es aus, ist hier schon jemand weitergekommen? und mit was müßte ich denn die umgearbeitete lib neu compelieren?
vileicht kann jemand die lcd4e2.lib hier reinstellen, damit auch benutzer der Demo version von Bascom das LCD einstellen können
Tach, > vileicht kann jemand die lcd4e2.lib hier reinstellen, damit auch > benutzer der Demo version von Bascom das LCD einstellen können DAS würde mächtig Ärger geben und völlig zu Recht. An die Lizenzbedingungen sollte man sich schon halten! Henrik
leute, man muss sich doch auch mal entschliessen können, endlich die origonalversion zu kaufen. man testet dieses bascom und wenn man fertig ist und nicht zufrieden damit ist, nimmt man fastavr-basic und wenn das auch nicht zusagt, nimmt man freeware winavr-c, das kostet nichts. ich wäre auch bereit in dringenden fällen 80euro zu borgen, hier müssten wir uns aber erst näher über das telefon unterhalten. mail: pebisoft@arcor.de mfg pebisoft
habs nun auch mit der Demoversion geschaft. Die einstellungen der Ports muss nicht in der LIB erfolgen. ddrd =&HFF 'Ports als ausgang definieren '27 x 4 LCD Display angeschlossen Dim ___lcdno As Bit 'zum umschalten zwischen den kontrollern Config Lcdpin = Pin , E = Portc.2 , E2 = Portc.3 , Rs = Portc.0 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portd.6 , Db7 = Portd.7 Config Lcd = 40 * 4 ___lcdno = 0 'Obere Hälfte Initialisieren Initlcd ___lcdno = 1 'untere Hälfte Initialisieren Init
Irgendwie geht es auch so wie beschrieben nicht. Ich benutze den Port a an einem Mega128 und versuch auch schon seit tagen dieses Problem zu lösen (Gleiches Display). Ich bekomme aber immer wieder den Fehler "no mor Space for Bit" wenn ich es in deiner Weise versuche.
Ja bei mir hatte sich auch ein kleiner fehler eingeschlichen. es muss heissen Dim ___lcdno As Byte // und nicht as Bit
Alles klar. Vielen Dank für den Hinweis. Jetzt klappts auch mit dem Display.
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.