mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ethernut 2.1 LCD Display


Autor: Denis Jakel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich habe etwas Schwierigkeiten beim Initialisieren eines LCD Displays am
Ethernut Board 2.1 (Atmega128). Ich benutze ein Standart LCD Display
"Displaytech 162".

In meinem Anhang ist eine PDF Anleitung zur Anbindung eines LCD an das
Board dabei. Leider bekomme ich es nicht auf die Reihe. Ein txt File mit
Fehlermeldungen liegt ebenfalls drin, sowie meine Projekt Datei
"simle.c" mit Make file.

Bin in einer Sackgasse angekommen und weiß nicht mehr weiter!!!!!

Ich habe mich an ihre PDF Anleitung gehalten und den C Quellcode
kopiert.

Im Make File habe ich die Datei hd44780.c eingebunden.
Ich bekomme bei copeilieren jedoch einige Fehlermeldungen wie. Z.B.
“simple.c:141: warning: implicit declaration of function
'LcdSendNibble'”.

Mir ist nicht klar warum???
Die Datei hd44780.c wurde doch mit eingebunden wo die Funktion enthalten
ist.

Desweiteren finde ich nirgend die Funktion 'LCD_SWITCH_ALL' undeclared
(first use in this function)

Ich wäre sehr dankbar wenn ihr mal einen Blick in mein Projekt
simple.rar werfen könntet.

MfG

Denis Jakel

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Denis Jakel wrote:

> Im Make File habe ich die Datei hd44780.c eingebunden.
> Ich bekomme bei copeilieren jedoch einige Fehlermeldungen wie. Z.B.
> “simple.c:141: warning: implicit declaration of function
> 'LcdSendNibble'”.

Hast du in de simple.c auch ein
#include "hd44780.h"

Gibts es die Fkt überhaupt in der .h und .c ?

PS:
eine zip ist besser...das kann win sogar mit bordmitteln...

Autor: Denis Jakel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier nochmal als Zip File

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast Code in hd44780.c und simple.c doppelt.

Das ist für mich ein Hinweis darauf, dass du nicht verstanden hast, wie 
die LCD Routinen in Ethernut implementiert sind.

Es sieht für mich so aus, als ob du die Erklärungen zur LCD Ansteuerung 
im PDF 1:1 in simple.c kopiert hast, statt die vorhandenen Funktionen in 
hd44780.c und dev/hd44780.h zu benutzen und die konkrete Anpassung an 
die Hardware (Displaytyp, Ports) in cfg/LCD.h zu machen.

Du musst dich entscheiden, ob du mit der lückenhaften Anleitung aus dem 
PDF arbeiten willst oder mit dem älteren (?) Treiber aus hd44780.c

Wenn du mit dem PDF arbeitest, dann solltest du deinen Code checken. 
Hier z.B. ist ein Fehler beim Ende des Kommentars - der Funktionsname 
fehlt!

/*
The initialization routine uses another command routine named LcdSwitch, 
which
switches on and off certain mode bits in the LCD controller.
void LcdSwitch(u_char on, u_char off)
*/
{
switch_control |= on & LCD_SWITCH_ALL;
switch_control &= ~(off & LCD_SWITCH_ALL);
LcdWriteCmd(switch_control, 1);
}

Die meisten (alle) Warungen bekommst du weg, wenn du die Definitionen 
und Funktionen so umsortierst, dass die Funktionsdefinition vor dem 
ersten Aufruf der Funktion kommt. Du kannst alternativ auch die jetzige 
Anordnung lassen und zusätzlich vor den Funktionsdefinitionen 
Funktionsprototypen deklarieren.

Bei dem von dir kopierten LCD-Teil fehlt anscheinend auch die 
Beschreibung bestimmter Definitionen für LcdSwitch (LCD_SWITCH_DISPLAY, 
LCD_SWITCH_ALL). Die PDF-Anleitung ist in diesem Sinn lückenhaft. Du 
könntest mal alle Ethernut Sourcen auf diese Stichworte durchsuchen, ob 
die vielleicht irgendwo in einer Include-Datei oder in einem Beispiel 
stehen. Eine Google-Suche bringt an der Stelle nur eine offene Frage.

Oder du vergisst das PDF und arbeitest mit dem vorhandenen hd44780.c

Wenn die kopierten Teile in simple.c raus sind, erledigen sich die 
meisten (alle) Warnings. Die Fehler zu den unbekannten Symbolen dürften 
sich dadurch auch erledigen. Die Routinen aus hd44780.c und 
dev/hd44780.h benutzen die fehlenden Definitionen nicht bzw. bringen 
eigene mit.

Autor: Denis Jakel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @all,

ich habe das LCD am Ethernut 2.1 Board zum laufen bekommen.
Für alle die Probleme damit haben, hier die Datei als Anhang

Gruß

Denis

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.