www.mikrocontroller.net

Forum: Compiler & IDEs LCD - Datei einbinden (".")


Autor: Christian P. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Folgendes zu Hard: und Software:
Schreibe meine Programme mit AVR Studio 4.18 und verwende den C Compiler 
WinAVR 20090313.
Besize Das Board RN-CONTROL mit ATmega32 von der Homepage 
http://www.shop.robotikhardware.de/shop/catalog/pr...
und das LCD Display AC-202A.

Nun zu meiner Frage:
Da ich Anfänger bin habe ich mir den C Code vom GCC Tutorial 
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...
ins AVR Studio kopiert. Beim Compilieren kommt die Fehlermeldung
../LCD.c:49:26: error: lcd-routines.h: No such file or directory

Der Compiler kann mit den "..." nichts anfangen.

Habe mir schon sämtliche Beiträge durchgelesen, aber irgendwie verstehe 
ich die Zusammenhänge nicht.

Bin für alle Beiträge dankbar.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hast du dir denn auch die lcd-routines.h kopiert?
Die muß im gleichen Verzeichnis liegen wie die .c-Dateien
(wg. der "" beim #include).

Autor: Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, "..." ist auch nen Punkt zuviel ;-)

Kopier doch der einfachheit halber mal die lcd.h und die lcd.c mit in 
das aktuelle Verzeichnis.
Im AVR Studio bindest du dann die lcd.c bei den Source files mit ein.
In deiner C-Datei schreibst du dann einfach include lcd.h
Den Rest erledigt dann das Studio

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube, die ... hat er nicht im Quelltext stehen?
Das war nur, um Gänsefüßchen mit irgendwas drin zu schreiben,
denke ich. Sonst sähe die Fehlermeldung anders aus.

Autor: Christian P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau das ist der springende Punkt. Ich hab mir ein eigenes Verzeichnis 
angelegt und dies beim Projekterstellen ausgewählt. Jetzt weiß ich 
nicht, wo sich die lch.h bzw. lcd.c befinden?
Wo muss ich dann im AVR Studio die lcd.c einbinden?
Ich bräuchte da eine Anleitung für DUMMIS.

Autor: lamie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Explorer" -> Dateisuchen, dann in dein Projektverzeichnis kopieren. In 
der Projektverwaltung von AVRStudio, rechte Maustaste -> *.h und *.c 
hinzufügen

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

Bewertung
0 lesenswert
nicht lesenswert
Hier noch ein Bild dazu

Autor: lamie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ober rechts findest du Header Files und Source Files, also *.h und *.c 
files.

Autor: Christian P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unter Source Files befindet sich schon seit der Projeterstellung die 
lcd.c.

Was ist mit der lcd.h Datei bzw. wo befindet sich diese?
Hab den Explorer durchsucht, aber nichts brauchbares gefunden.
Befindet sich diese etwa im WinAVR Verzeichnis?

Autor: lamie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lcd.c und lcd.h gehören zum Code für das LCD, also zum Ansteuern. Dies 
werden im quellcode mit "#include" eingebunden, diese Zeilen müßten ganz 
oben im Quellcode stehen.

Poste doch mal deinen Code

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

Bewertung
0 lesenswert
nicht lesenswert
Wenn du den Code aus dem Wiki hier im Forum benutzt (benutzen willst), 
kannst du die Dateien selbst erstellen. Copy and Paste :-), siehe Bild.

Autor: Christian P. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Verwende den Code aus dem Wiki
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Habe einfach den Code ins AVR Studio hineinkopiert.
LCD.c befand sich automatisch in den Source Files.

Welche Schritte muss ich noch machen, nachdem ich unter den Header Files 
eine Datei erstelle?

Autor: lamie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also nur mit den lcd.h und lcd.c bkommst du nichts auf´s display. in dem 
Wiki sind noch 2 mal die main.c aufgeführt die mit den beiden LCD datein 
zusammen arbeitet. Such dir eine aus!!! erstelle erstmal deine main.c.

Du sollstest dir erstmal ein kleineres Projekt zusammen stellen. 
Blinkende LED zum Beispiel. Findest du auch im Wiki. Auch einführende 
Beispiele im C-Code, was ist eine Main.c usw.

Autor: M. M. (miszou)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

nur zur Info die LCD.c ist sicher nicht automatisch erstellt worden. Die 
hast du beim Erstellen eines neues Projekts als "Initial file:" den 
Namen dort eingegeben. Besser wäre es du nennst sie "main" oder oder was 
auch immer. Zumindest so, dass du erkennst das sich dort deine main 
Funktion befindet.

Gruß MISZOU

Autor: Christian P. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Mittlerweile habe ein neues Projekt erstellt, damit es zu keinen 
Verwechslungen mit lcd.c kommt.
Der Name des neuen Projektes lautet Erster_Versuch--LCD.c
Beim Compelieren erscheint noch immer der gleiche Fehler.

Von welchem Verzeichnis bekomme ich jetzt die lcd.c bzw. die lcd.h oder 
brauche ich diese gar nicht, da der Fehler auf dieses #include 
"lcd-routines.h" verweist?

Autor: Christian P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Übrigens, Lauflichtprogramme bzw. Blinklichter funktionieren 
einwandfrei.
Hier brauche ich aun nichts einzubinden.
Es muss also an dem #include "lcd-routines.h" liegen.

Autor: lamie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Diese Datei sollte deine main.c werden. wie du siehst ist dort per 
#include die lcd-routines.h eingefügt. Die " " sagen nichts anderes das 
die Datei sich im Projekt Verzeichnis befindet. Die < und > sagen den 
Compiler das die Datein in seinem Verzeichnis (in deinem Fall WINAVR) 
liegen. Also kopiere aus dem Wiki die Datein, und füge Sie in deinem 
Projekt dazu, wie oben schon beschrieben. Ansonsten gilt für dich: 
erstmal die einführenden Schritte aus dem Wiki lernen, und nicht mitten 
drin anfangen, das gibt nur Frust.


//
// Anpassungen im makefile:
//    ATMega8 => MCU=atmega8 im makefile einstellen
//    lcd-routines.c in SRC = ... Zeile anhängen
//
#include <avr/io.h>
#include <stdlib.h>
#include "lcd-routines.h"

// Beispiel
int variable = 42;

int main(void)
{
    lcd_init();

    // Ausgabe des Zeichens dessen ASCII-Code gleich dem Variablenwert 
ist
    // (Im Beispiel entspricht der ASCII-Code 42 dem Zeichen *)
    // http://www.code-knacker.de/ascii.htm
    lcd_data(variable);

    set_cursor(0,2);

    // Ausgabe der Variable als Text in dezimaler Schreibweise
    {
       // ... umwandeln siehe FAQ Artikel bei www.mikrocontroller.net
       // WinAVR hat eine itoa()-Funktion, das erfordert obiges #include 
<stdlib.h>
       char Buffer[20]; // in diesem {} lokal
       itoa( variable, Buffer, 10 );

       // ... ausgeben
       lcd_string( Buffer );
    }

    while(1)
    {
    }

    return 0;
}

Autor: Viktor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
BITTE sagen, wo "lcd-routines.h" - Datei und andere möglich finden zum 
rünterladen. Oder wie kan man sie selbst einstellen...............

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt bin ich aber langsam doch verwirrt...

In deinem Original-Beitrag ganz oben hast du doch schon einen Link
auf das Tutorial geschrieben: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Wenn du darin etwas nach unten blätterst (bis zur Überschrift 
Programmierung), dann sind dort Quelltexte abgedruckt.

Gleich der erste davon heisst lcd-rotines.h.

Diesen Quelltext rahmt man mit der Maus ein, drückt auf Strg-C
bzw. Ctrl-C, öffnet einen Editor der freien Wahl (z.B.
gibt es im AVR-Studio wahrscheinlich so etwas wie "Neue Datei"
im Menü, sonst halt Notepad starten oder jeden anderen Editor).
In dem leeren Textfenster drückt man auf Strg-V oder Ctrl-V
und sollte jetzt den Quelltext aus dem Tutorial sehen.
Dann abspeichern als lcd-routines.h, und zwar in dem Verzeichnis,
in dem auch schon dein erster Quelltext LCD.c steht, von dem die
obigen Fehlermeldungen stammen bzgl. "../LCD.c:49:26: error:
lcd-routines.h: No such file or directory".

Analog dann aus dem Tutorial lcd-routines.c kopieren und
auf der Festplatte im selben Verzeichnis als lcd-routines.c
speichern.

Dann wie oben beschrieben zusehen, daß diese Dateien
im AVR-Studio auch zum Projekt gehören, sonst hinzufügen.

Zu dem Projekt sollten deine LCD.c gehören (falls sie noch so
heisst) sowie die beiden lcd-routines.c und lcd-routines.h.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag: sehe jetzt erst, daß die letzte Frage von jemand anderem
kommt als die erste.

Da hat Viktor einfach einen Thread gekapert...

Ansonsten stimmt meine Antwort hoffentlich trotzdem.

Viktor, betrachte dich kurz als Christian P. und mache
bitte in Zukunft für neue Fragen einen neuen Thread auf!

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

Bewertung
0 lesenswert
nicht lesenswert
Na gut, ich habs kopiert und drangehängt.

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das gleiche Problem wie von Christian P. angesprochen habe ich auch. Hab 
auch den ganzen Code von der Mikrocontroller.net Seite ins AVR Studio 
kopiert und erhalte auch bei der lcd - routine immer eine Fehlermeldung. 
Hab schon die ganzen Foren nach möglichen Ursachen durchsucht, aber ohne 
Erfog. Kann vielleicht jemand eine Anleitung hier hineinstellen wie die 
einzelnen Schritte zu bewerkstelligen sind, damit das Programm endlich 
läuft.

Die lcd.h Datei hab ich auch schon in die Header - Files eingebunden, 
jedoch ohne Erfolg. Vielleicht liegt das Problem an dem lcd.h File von 
Peter Fleury, da dieses File für win avr 3.3 geschrieben wurde?

Danke

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

Bewertung
0 lesenswert
nicht lesenswert
Du erstellst ein neues Projekt.
Nenn es meinetwegen lcd_test

AVR Studio erzeugt das Projekt und auch eine lcd_test.c

Diese lcd_test wird deine Hauptdatei. Dort schreibst du deinen Code.

Jetzt brauchst du noch die eigentlichen lcd Funktionen. Die, die die 
Arbeit machen.
So wie das aussieht, hast du dir von P. Fleury die LCD Library geholt. 
Im Zip-File findest du eine lcd.c und eine lcd.h
Beide Dateien kopierst du auf das Verzeichnis in dem AVR Studio das 
Projekt angelegt hat und wo es auch die lcd_test.c erzeugt hat.

Damit hast du in deinem Projektverzeichnis:
  lcd_test.c
  lcd.c
  lcd.h

Bisher ist nur die lcd_test.c im Projekt enthalten. Die anderen beiden 
sind nur auf dem Verzeichnis aber deswegen sind sie noch lange nicht 
Teil des Projektes. Also fügst du im AVR-Studio die beiden Dateien 
hinzu: Im Source-Tree Baum, rechte Maustaste, add existing Source Files 
und jeweils die lcd.c bzw. die lcd.h zum Projekt hinzufügen.

In deinem lcd_test.c kannst du jetzt schreiben
....
#include <lcd.h>
...

und der Compiler wird das include-File finden.

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.