www.mikrocontroller.net

Forum: Compiler & IDEs RE: C-Code zu LCD von Fleury


Autor: Thommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal !!

Ich hatte hier gestern was zu einem Compiler-Problem beim Versuch, ein 
44780-LCD mit Fleurys Code zu betreiben, geschrieben.
Der Code wird inzwischen anstandslos übersetzt (lag am makefile). Nun 
hab ich das hex-file aufm Board, es tut sich aber noch gar nix aufm 
Display.
Ich hab den Code aus test_lcd.c und lcd.c von Fleury benutzt. Die 
Board-Frequenz, den Port und den uC-Typ hab ich im lcd.h bzw. makefile 
angepasst.
ABER das LCD gibt kein einziges Zeichen von sich...
Vielleicht die Verdrahtung ? Hab den 4-bit Mode eingestellt und versorge 
das Display über VTG von meinem STK500 aus (sollte soweit funzen, da das 
LCD laut Datenblatt weniger Strom zieht als eine LED).

Hat da jemand ne Idee ?? Würd mich sehr über Vorschläge freuen!!

Gruß, Thommy

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

Bewertung
0 lesenswert
nicht lesenswert
Fangen wir doch mal bei den einfachen Tests an:
Versorgungsspannung liegt an?
Kontrastspannung liegt an?
Wenn Versorgungsspannung da ist, Kontrastspannung
stimmt und sonst nichts am LCD angeschlossen ist,
müsstest du bereits auf dem LCD in der ersten Zeile
lauter Balken sehen.
Sind die da?

Autor: Thommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Karl !

Ich hab jetzt mal ganz banal die Funktion geprüft, und gemerkt, dass man 
den Poti nur bis ganz auf Endausschlag drehen muss, damit dann die 
Leerzeichen als Balken angezeigt werden.
Nun spinnt aber anscheinend die Datenübertragung zum Display. Es zeigt 
zwar ne Menge Zeichen an, aber vollkommen sinnlos. Egal, was ich 
ausgeben möchte, es kommt der wildeste Salat raus - manchmal kommt auch 
gar nix.
Die Verdrahtung hab ich nochmal geprüft - die is so ok. Ich hab die 
Osc.-Freq. aus meinem STK500 ausgelesen (3,686 Mhz) und lcd.h 
entsprechend geändert. IO-Mode stimmt auch, Port stimmt, und 
Diplay-Controller-Typ hab ich auch richtig eingestellt. Was kann da noch 
fehlen/falsch sein ?!

Ich verzweifel langsam über diesem doofen Teil...

Dank u. Gruß, Thommy

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

Bewertung
0 lesenswert
nicht lesenswert
Ich hab da so eine Vermutung.
Trag doch mal probehalber in deiner lcd.h eine
Taktfrequenz von 1 Mhz ein.

Autor: Fabian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
checkst du das busyflag nach jedem Sendevorgang ab?
3 Nops haben bei mir nicht gereicht! Bei mir gings nur mit Busyflag!

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meine LCD Library wertet Busyflag aus, deshalb muss zwingend Busy-Flag 
angeschlossen werden. Auch darf das Flachband-Kabel zwischen LCD und AVR 
nicht zu lang sein. 10-20 cm sollte ok sein.

Autor: Thommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Fabian und P. Fleury (?) !!

Ich weiss leider noch nicht, was ein busy-flag ist oder wie es 
angeschlossen wird. Könnt ihr mir da vielleicht weiterhelfen ?
Danke !

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf meiner Home page hat es ja unter Projects eine Anleitung mit Schema 
wie ein LCD angeschlossen werden muss

Autor: Thommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Peter !

Die Leitungen vom STK500-Port zum LCD sind kaum länger als 10cm (hab ich 
nun extra nochmal umgelötet). Ich hab auch die Verdrahtung geprüft - ist 
ok. Ich nenn hier einfach noch ein paar Fakten zum 
Aufbau/Programmierung:

- STK500 mit atmega8
- Quarz mit 4Mhz auf Board (in lcd.h angepasst)
- LCD mit 44780-Chip, 4x16 Zeichen (Zeilenanzahl und -länge angepasst; 
was ist jedoch mit LCD_LINE_LENGTH und LCD_START_LINEx-Parametern ? muss 
ich die anpassen ?)
- LCD_IO_MODE == 1 und dementsprechend verdrahtet
- Versorgungsspannung für LCD beziehe ich von STK500-Board
- programmiert unter AVR Studio; unter "Source Files" lcd.c und 
test_lcd.c hinzu gefügt, und unter "Header Files" alle in den *.c-Files 
geforderten Header-Dateien hinzu gefügt; dein makefile verwendet und MCU 
name auf atmega8 geändert
- der Code wird ohne Mucken compiliert

Der Fehler äussert sich so, dass nach dem Übertragen des Codes erstmal 
nichts geschieht und nach ein- oder zweimaligem Aus-/Einschalten die 
Anzeige verrückt spielt: mal werden durchgehend Nullen angezeigt, mal 
sind es gemischte Zeichen. Dabei flimmern hier und dort ein paar 
horizontale Linien übers Bild, als ob alles ständig wiederholt würde.

So, jetzt hab ich hier wirklich alles runtergetippt, was mir zum 
Aufbau/Programmierung eingefallen ist.

Ich hoffe, dass Du einen Fehler entdeckt hast, und würd mich freuen, was 
von Dir zu hören...

Gruß, Thommy

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

Bewertung
0 lesenswert
nicht lesenswert
Probier doch mal das:

<code>
#include <lcd.h>
int main (void)
{
    lcd_init(LCD_DISP_ON_CURSOR_BLINK);
    lcd_puts("Test");

    for (;;)
    {}
}
</code>

Verdrahtung so wie auf dem Bild (Anlage).

in der LCD.h fürs erste nur Ports und Pins anpassen.

Gruß

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.