Forum: Mikrocontroller und Digitale Elektronik AVR C-Tutorial LCD Frage


von Marco M. (marco1987)


Lesenswert?

Guten Abend,


Ich habe mal eine Frage zu dem Tutorial zu dem Abschnitt 14

 LCD-Ansteuerung
Das LCD und sein Controller


Habe eine header datei lcd-routines.h erstellt und in das projekt 
eingebunden.

aber was soll ich mit lcs-routines.c machen? das erkennt der kompiler 
nicht und ich weiss auch nicht was der comment "lcd-routines.c in SRC = 
... Zeile anhängen"

heissen soll kann mir das jmd sagen?

>//
>// Anpassungen im makefile:
>//    ATMega8 => MCU=atmega8 im makefile einstellen
>//    lcd-routines.c in SRC = ... Zeile anhängen
>//

von Johannes M. (johnny-m)


Lesenswert?

Marco Müeller wrote:
> aber was soll ich mit lcs-routines.c machen? das erkennt der kompiler
> nicht und ich weiss auch nicht was der comment "lcd-routines.c in SRC =
> ... Zeile anhängen"
>
> heissen soll kann mir das jmd sagen?
Du musst die lcd-routines.c dem Compiler bekanntmachen. Entweder im 
Makefile zu den C-Sourcen hinzufügen oder im AVRStudio (falls Du mit 
selbigem arbeitest) im Projektbaum durch Rechtsklick auf den Ordner 
Source Files und dann "add existing source file(s)" auswählen...

von Marco M. (marco1987)


Lesenswert?

AVR Studio macht immer folgendes unter "Source Files" daraus:

lcd-routines.c.h

was heisst denn diese zeile:


//    lcd-routines.c in SRC = ... Zeile anhängen


danke

von Marco M. (marco1987)


Lesenswert?

Hat sich erledigt danke

von Huber M. (michael_h784)


Lesenswert?

Hallo,

ich beschäftige mich auch gerade mit diesem tutorial, ich arbeite mit 
avr studio 6.0. und möchte auch die lcd-routunes.c einbinden.

ich kann aber den Ordner Source files nicht finden. Bin ich hier 
überhaupt auf dem richtigen Pfad?

Button Projekt--->GccAplikation Properties(alt+f7)--->Toolchain hier 
kommt jetzt compiler einstellungen usw...


Johannes M. schrieb:
> Du musst die lcd-routines.c dem Compiler bekanntmachen. Entweder im
> Makefile zu den C-Sourcen hinzufügen oder im AVRStudio (falls Du mit
> selbigem arbeitest) im Projektbaum durch Rechtsklick auf den Ordner
> Source Files und dann "add existing source file(s)" auswählen...

Heisst das hier im AVR studio 6.0 anders?

von Arduinoquäler (Gast)


Lesenswert?

Huber M. schrieb:
> Heisst das hier im AVR studio 6.0 anders?

Johannes M. redet (laaaaaang laaaang ist's her) vom AVR Studio.

AVR Studios gibt es ....3.xx, 4.xx bis 4.19
Bis dahin hiess die Entwicklungsumgebung AVR Studio.

Das was du benutzt heisst Atmel Studio, dies gibt es in den
Versionen 5.x, 6.x, 7.x

Diese Studios sind komplett anders aufgebaut, also kannst
du dich nicht (als Anfänger) daran orientieren was über
AVR Studio 4.xx gesagt wird.

von Arduinoquäler (Gast)


Lesenswert?

Huber M. schrieb:
> Heisst das hier im AVR studio 6.0 anders?

Wenn du "nur" einen 8-Bit AVR Controller programmieren
willst tust du dir als Anfänger wesentlich leichter mit
AVR Studio 4.18 oder 4.19 da übersichtlicher und schneller.

Ein Nachteil: neuere Programmieradapter/Debugger werden
nicht unterstützt (z.B. Atmel ICE).

von Stefan F. (Gast)


Lesenswert?

Für neue Programmieradapter empfehle ich avrdude + AVR8 Burn-O-Mat.
Wird genau so bedient, wie das im AVR Studio eingebaute Tool.

So kann man mit dem alten AVR Studio trotz neuem Programmieradapter 
weiter arbeiten, was ich sehr empfehle.

von Huber M. (michael_h784)


Lesenswert?

Hallo,

so jetzt habe ich mir das AVR Studio 4.18 zugelegt. und ich bin 
begeistert :-).

Und ich will auch dieses tutorial machen.
[[https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung]]

 habe mir dazu auch die zwei Dateien gespeichert. lcd-routines.c , 
lcd-routines.h . Dann mit rechts klick die .c Datei in Source files und 
die .h Datei in den Header file ge-added - und die Hauptdatei LCD 
beispiel 1 als Hauptprogramm halt. allerdings bekomme ich beim übesetzen 
folgenden fehler code :-( . Was mache ich denn da falsch?

1
rm -rf screen.o lcd-routines.o  screen.elf dep/* screen.hex screen.eep screen.lss screen.map
2
Build succeeded with 0 Warnings...
3
avr-gcc  -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -O1 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT screen.o -MF dep/screen.o.d  -c  ../screen.c
4
../screen.c:7:26: error: lcd-routines.h: No such file or directory
5
../screen.c: In function 'main':
6
../screen.c:14: warning: implicit declaration of function 'lcd_init'
7
../screen.c:17: warning: implicit declaration of function 'lcd_data'
8
../screen.c:23: warning: implicit declaration of function 'lcd_setcursor'
9
../screen.c:26: warning: implicit declaration of function 'lcd_string'
10
make: *** [screen.o] Error 1
11
Build failed with 1 errors and 4 warnings...

von Arduinoquäler (Gast)


Lesenswert?

Huber M. schrieb:
> Was mache ich denn da falsch?

Zeige bitte deinen (vollständig geöffneten) Verzeichnisbaum vom
AVR Studio als Screenshot.

von Hubert G. (hubertg)


Lesenswert?

Sieht nach fehlenden #include "lcd-routines.h" aus.

von Huber M. (michael_h784)


Angehängte Dateien:

Lesenswert?

Hier mal screen shot

von Jim M. (turboj)


Lesenswert?

Huber M. schrieb:
> ../screen.c:7:26: error: lcd-routines.h: No such file or directory

Hubert G. schrieb:
> Sieht nach fehlenden #include "lcd-routines.h" aus.

Mal die Brille putzen, da steht definitiv ein #include drin.

Sieht mir hier eher nach Pfadproblemen aus oder er hat die falschen 
Klammern benutzt.
Das hier:
1
#include <lcd-routines.h>
sucht nur im Include Pfad.

Das hier:
1
#include "lcd-routines.h"

such zusätzlich auch im aktuellen Verzeichnis.

Bei solchen Problemen lautet der beste Rat: Lies ein gutes C-Buch! Das 
sind Anfängerfehler.

: Bearbeitet durch User
von Huber M. (michael_h784)


Lesenswert?

Jim M. schrieb:
> Das hier:#include "lcd-routines.h"
>
> such zusätzlich auch im aktuellen Verzeichnis.

genau so steht es drin

Bei solchen Problemen lautet der beste Rat: Lies ein gutes C-Buch! Das
sind Anfängerfehler.

und ich hab mir das mit präprozessor, compiler und linker schon mal 
angesehen, aber ganz blick ich einfach noch nicht durch

: Bearbeitet durch User
von Arduinoquäler (Gast)


Lesenswert?

Huber M. schrieb:
> Hier mal screen shot

Suche mal die Datei lcd-routines.h

Sie soll im gleichen Verzeichnis stehen wie die
Datei DISPLAY_TEST.c

Wenn nicht dann verschiebe sie dorthin.

In deinem jetzigen Screenshot hast du 2 Errors, in deinem
Posting nur einen, versuch mal etwas Klarheit in deinen
Kopf zu bekommen.

von Huber M. (michael_h784)


Angehängte Dateien:

Lesenswert?

Ja, tut mir leid ich habe es mir gelöscht. und abe es noch einmal neu 
macen müssen.

so jetzt in den gleichen pfad kopiert, nur noch ein fehler, das wird 
wohl dann das selbe für die .c datei heissen.


so jetzt noch mal der aktuelle screen shot. nach dem kopieren.

von Arduinoquäler (Gast)


Lesenswert?

Huber M. schrieb:
> genau so steht es drin

Es ist nicht entscheidend was im AVR Studio zu sehen ist
sondern ob die Datei auch wirklich in dem Verzeichnis
steht in dem die Datei DISPLAY_TEST.c zu finden ist.

Es kann auch sein dass du im Projekt auf eine andere Datei
DISPLAY_TEST.c verweist als die die du meinst. Es muss
aber (projekt-technisch gesehen) für beide Dateien auf
das aktuelle Projekt-Verzeichnis gezeigt werden (mit
rechter Maustaste auf Dateinamen--> Properties überprüfen).

von Arduinoquäler (Gast)


Lesenswert?

Huber M. schrieb:
> so jetzt noch mal der aktuelle screen shot.

Edit Configuration Options --> Device (richtig einstellen)

von Arduinoquäler (Gast)


Lesenswert?

Der ursprüngliche Fehler liegt im Datei-Namen:

#include "lcd-routines.h"  --->  #include "lcd_routines.h"

von Hubert G. (hubertg)


Lesenswert?

Du hast in die Configuration Options ATmega8a hineingeschrieben. Lass 
mal das a nach der 8 weg.

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.