mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD mit 2 unabhängigen Controllern


Autor: MyCo (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Matula (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: MyCo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Matula (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: MyCo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!)?

Autor: Matula (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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.

Autor: MyCo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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 :-)

Autor: Manuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie sieht es aus, ist hier schon jemand weitergekommen?

und mit was müßte ich denn die umgearbeitete lib neu compelieren?

Autor: Olaf Petersen (bronko)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vileicht kann jemand die lcd4e2.lib hier reinstellen, damit auch
benutzer der Demo version von Bascom das LCD einstellen können

Autor: Henrik Reimers (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: pebisoft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Olaf Petersen (bronko)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Joerg Verbeck (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja bei mir hatte sich auch ein kleiner fehler eingeschlichen.

es muss heissen

Dim ___lcdno As Byte  // und nicht as Bit

Autor: Joerg Verbeck (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar. Vielen Dank für den Hinweis.
Jetzt klappts auch mit dem Display.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.