www.mikrocontroller.net

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


Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht 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
>//

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat sich erledigt danke

Autor: Huber M. (michael_h784)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Arduinoquäler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Arduinoquäler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Stefan Us (stefanus)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Huber M. (michael_h784)
Datum:

Bewertung
0 lesenswert
nicht 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-T...]]

 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?

rm -rf screen.o lcd-routines.o  screen.elf dep/* screen.hex screen.eep screen.lss screen.map
Build succeeded with 0 Warnings...
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
../screen.c:7:26: error: lcd-routines.h: No such file or directory
../screen.c: In function 'main':
../screen.c:14: warning: implicit declaration of function 'lcd_init'
../screen.c:17: warning: implicit declaration of function 'lcd_data'
../screen.c:23: warning: implicit declaration of function 'lcd_setcursor'
../screen.c:26: warning: implicit declaration of function 'lcd_string'
make: *** [screen.o] Error 1
Build failed with 1 errors and 4 warnings...

Autor: Arduinoquäler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Huber M. schrieb:
> Was mache ich denn da falsch?

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

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieht nach fehlenden #include "lcd-routines.h" aus.

Autor: Huber M. (michael_h784)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal screen shot

Autor: Jim Meba (turboj)
Datum:

Bewertung
0 lesenswert
nicht 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:
#include <lcd-routines.h>
sucht nur im Include Pfad.

Das hier:
#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
Autor: Huber M. (michael_h784)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Arduinoquäler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Huber M. (michael_h784)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Arduinoquäler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Arduinoquäler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Huber M. schrieb:
> so jetzt noch mal der aktuelle screen shot.

Edit Configuration Options --> Device (richtig einstellen)

Autor: Arduinoquäler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der ursprüngliche Fehler liegt im Datei-Namen:

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

Autor: Hubert G. (hubertg)
Datum:

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

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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.