mikrocontroller.net

Forum: Compiler & IDEs LCD-lib ohne R/W


Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Ich habe eine Hardware mit LCD bei dem der R/W nicht ausgeführt ist, es 
ist auch kein Pin mehr vorhanden.
In der alten SW wurde die Lib von P. Fleury verwendet, nach Änderungen 
in der SW und fehlerfreiem kompilieren mit neuem GCC ergeben sich 
allerdings Probleme. Ohne Optimierung läuft das Programm einwandfrei, 
ist aber zu groß für den Kontroller Mega8 (Test mit Mega32). Mit 
Optimierung geht am Display nichts mehr ausser gelegentlich nach Reset 
ein paar Katakana.
Hat jemand eine Lib die ohne R/W funktioniert und einigermassen zur 
Fleury Lib passt.
Danke schon mal.
Grüsse Hubert

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hubert G. wrote:
> In der alten SW wurde die Lib von P. Fleury verwendet, nach Änderungen
> in der SW

Was hast du wie geändert.

> Hat jemand eine Lib die ohne R/W funktioniert

Die Fleury Lib kann relativ einfach auf R/W-freien Betrieb umgerüstet
werden(*) Mann muss allerdings beachten, dass dann der automatische
Umbruch (WORD_WRAP) ausgeschaltet sein muss, bzw. alles was mit
auslesen zu tun hat, nicht mehr funktionieren wird.


(*) Die Umrüstung beschränkt sich auf 1 Funktion.

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der Lib von Fleury habe ich nichts geändert, es ist nur beim 
restliche Programm etwas dazugekommen. Der Speicherplatz ist voll daher 
wollte ich es mit dem neuen GCC machen, mit dem alten gehts nicht.
Lesen ist nicht wichtig da nur alle 2sec aktualisiert wird und auch 
nicht zeitkritisch.
Wie müsste man denn die Lib umrüsten?

Autor: Lötlackl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Nach 'nem Schreibbefehl benötigt das Display 'ne gewisse Zeit, den 
Befehl abzuarbeiten. Das Busy-Flag signalisiert, wenn's denn soweit ist.
Man kann aber auch nach 'nem Schreibbefehl ein bisserl warten, 
idealerweise wenigstens solange, wie das Display laut diversen 
Datenblättern zur Abarbeitung benötigt und schenkt sich einfach die 
Busy-Flag-Abfrage.

mfg Lötlackl

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lötlackl wrote:
> Hi,
>
> Nach 'nem Schreibbefehl benötigt das Display 'ne gewisse Zeit, den
> Befehl abzuarbeiten. Das Busy-Flag signalisiert, wenn's denn soweit ist.
> Man kann aber auch nach 'nem Schreibbefehl ein bisserl warten,
> idealerweise wenigstens solange, wie das Display laut diversen
> Datenblättern zur Abarbeitung benötigt und schenkt sich einfach die
> Busy-Flag-Abfrage.

@Hubert

Genau.
Und glücklicherweise hat P. Fleury diese Abfrage des Busy
Flags in eine Funktion zusammengefasst. Die Funktion heist
auch irgendwie so ähnlich. Mach einfach das lcd.c auf
und such nach 'busy'. Da findest du die Funktion
garantiert.

Den momentanen Inhalt schmeist du raus und ersetzt ihn durch
einen
  _delay_ms( 5 );
  return 0;

und dann sollte dein Display eigentlich schon wieder funktionieren.

PS: Deine Fehlerbeschreibung hört sich allerdings nicht so an,
als ob die Fleury Lib daran schuld wäre :-) Und da sie vor deinen
Änderungen anscheinend schon mit dem fehlendem R/W Pin funktioniert
hat, ist es mehr als wahrscheinlich, dass sie bereits geändert
wurde.

Für mich hört sich deine Fehlerbeschreiung eher nach
'Du verwechselst Ursache und Wirkung'. Die Ursache deines
Problems ist deine SW Änderung. Die Wirkung die du siehst ist
dass dein Display nicht mehr funktioniert. Du versuchst daher
an der falschen Stelle das Problem zu fixen. Nicht die LCD
Library enthält ein Problem, sondern deine Änderung.

Ist ein bischen wie beim Arzt: Der kann sich noch solange
wundern warum eine Wunde immer weiter eitert und das
Eiter absaugen (=die Wirkung bekämpfen), solange er dir
den rostigen Nagel (=die Ursache) nicht rauszieht, wird
das alles nichts helfen.

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die neue LCD-Lib läuft jetzt mit der Änderung. Danke für den Hinweis.
Grüsse Hubert

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.