Forum: Mikrocontroller und Digitale Elektronik lcd problem, p. fleury


von brain (Gast)


Lesenswert?

Erstmal frohe Weihnachten!

Habe folgendes "Setup"
- atmega32 mit 16MHz Takt
- Elektors eblock LCD Board (Datasheet)-> 
http://www.matrixmultimedia.com/datasheets/EB005-30-3.pdf
- P. Fleury LCD lib -> http://homepage.hispeed.ch/peterfleury/

Wie auf dem Schaltplan zu erkennen, ist die R/W-Leitung direkt auf Masse 
gelegt. In der Libary von P.Fleury wird der R/W-Pin jedoch eingebunden.

Weiß jemand, ob das ein Problem darstellt?
... ich frage, weil ich das LCD noch nicht ans laufen bekommen habe und 
im Moment Fehler eingrenze.



Schöne Grüße

von Walter (Gast)


Lesenswert?

ja, da ist erst Mal ein Problem.
Wenn du die RW Leitung nicht verwenden willst, mustt du in der 
Bibliothek anstatt der Abfragen ob das LCD fertig ist ausreichend lange 
Warteschleifen einbauen.

Walter

von Andreas D. (dandy)


Lesenswert?

Nein, das ist kein Problem. Wenn Du nichts aus dem Display lesen willst 
kann die R/W Leitung direkt mit GND verbunden werden. Dann kann man nur 
daten zum Display senden. Also daran kanns nicht liegen. Wird wohl eher 
ein Initialisierungs oder Ansteuer Problem sein.

von Walter (Gast)


Lesenswert?

>Nein, das ist kein Problem. Wenn Du nichts aus dem Display lesen willst
>kann die R/W Leitung direkt mit GND verbunden werden. Dann kann man nur
>daten zum Display senden. Also daran kanns nicht liegen. Wird wohl eher
>ein Initialisierungs oder Ansteuer Problem sein.

wie bereits gesagt ist das ein Problem da in der genannten Fleury 
Bibliothek vom Display gelesen wird.
wie mir gerade einfällt nicht nur ob busy, sondern auch die aktuelle 
Zeichenposition.
es sind also ein paar Änderungen notwendig ...

Walter

von brain (Gast)


Lesenswert?

Hi Walter.
Sowas habe ich mir gedacht. Kannst du mir einen Tip geben, wo die 
Abfrage beginnt? Ich finde einfach nichts, was es sein könnte.
Nach #define LCD_RW_PIN wird LCD_RW_PIN nicht mehr genutzt.

Brain

von brain (Gast)


Lesenswert?

ok- dann werd ich wohl nochmal den lötkolben auspacken müssen. Vielen 
dank und noch schöne Feiertage. MfG

von Walter (Gast)


Lesenswert?

du musst natürlich auch in der lcd.c schauen

du musst vor allem die Funktion lcd_read ersetzen, in manchen Fällen 
durch eine Warteschleife,
in einem Fall wird in der Funktion lcd_putc die Position gelesen ...


am einfachsten ist eigentlich schon der Lötkolben wenn du noch einen 
Port frei hast ...

Walter

von Karl H. (kbuchegg)


Lesenswert?

Lass den Lötkolben eingepackt.

Alle Abfragen laufen in der Fleury Lib über eine einzige
Funktion. Die musst du im lcd.c ersetzen, und dann sollte
dein LCD auch schon laufen.

Die Funktion:
1
static uint8_t lcd_waitbusy(void)
2
3
{
4
  delay( 4000 );   // delay 4ms
5
  return 0;
6
}/* lcd_waitbusy */

von Walter (Gast)


Lesenswert?

@Karlheinz
>Alle Abfragen laufen in der Fleury Lib über eine einzige
>Funktion. Die musst du im lcd.c ersetzen, und dann sollte
>dein LCD auch schon laufen

schau dir lieber mal den Code von Fleury an bevor du Tipps gibst,
ich sagte ja bereits dass in lcd_putc die Position gelesen (und 
verwendet!) wird, das ist also auf jeden Fall auch zu ändern ..

von Karl H. (kbuchegg)


Lesenswert?

Walter wrote:
> @Karlheinz
> schau dir lieber mal den Code von Fleury an bevor du Tipps gibst,
> ich sagte ja bereits dass in lcd_putc die Position gelesen (und
> verwendet!) wird, das ist also auf jeden Fall auch zu ändern ..

Das ist richtig. Aber so schlimm auch wieder nicht.
Solange der automatische Wrap nicht aktiviert wird
und das LCD nicht aktiv abgefragt wird, ist das kein
Problem.

Für erste Versuche reicht es auf jeden Fall.

von brain (Gast)


Lesenswert?

Erfolgserlebnis!
Ich hab einfach den einen Draht noch angelötet und jetzt läuft alles. 
Super Weihnachtsgeschenk :-)

bestes

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
Noch kein Account? Hier anmelden.