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


von Christian P. (Gast)


Angehängte Dateien:

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/product_info.php?cPath=64&products_id=10
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-Tutorial/LCD-Ansteuerung
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.

von Klaus W. (mfgkw)


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).

von Werner (Gast)


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

von Klaus W. (mfgkw)


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.

von Christian P. (Gast)


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.

von lamie (Gast)


Lesenswert?

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

von lamie (Gast)


Angehängte Dateien:

Lesenswert?

Hier noch ein Bild dazu

von lamie (Gast)


Lesenswert?

ober rechts findest du Header Files und Source Files, also *.h und *.c 
files.

von Christian P. (Gast)


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?

von lamie (Gast)


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

von lamie (Gast)


Angehängte Dateien:

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.

von Christian P. (Gast)


Angehängte Dateien:

Lesenswert?

Verwende den Code aus dem Wiki
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung

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?

von lamie (Gast)


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.

von M. M. (miszou)


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

von Christian P. (Gast)


Angehängte Dateien:

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?

von Christian P. (Gast)


Lesenswert?

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

von lamie (Gast)


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;
}

von Viktor (Gast)


Lesenswert?

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

von Klaus W. (mfgkw)


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-Tutorial/LCD-Ansteuerung

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.

von Klaus W. (mfgkw)


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!

von lamie (Gast)


Angehängte Dateien:

Lesenswert?

Na gut, ich habs kopiert und drangehängt.

von Walter (Gast)


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

von Karl H. (kbuchegg)


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
1
....
2
#include <lcd.h>
3
...

und der Compiler wird das include-File finden.

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.