Forum: Mikrocontroller und Digitale Elektronik "lcd-routines.h"


von D. S. (jasmin)


Lesenswert?

Hallo,

habe Eclipse, Winavr etc. so installiert wie im Tutorial hier angegeben.
#include "lcd-routines.h" im sourcecode führt aber immer zum 
Compilerfehler:

Description  Resource  Path  Location  Type
lcd-routines.h: No such file or directory  main.c  TEST_C1  5C/C++ 
Problem

Im gesamten Filesystems meines Rechners findet sich auch keine Datei 
lcd-routines.h.

Was habe ich falsch gemacht, was fehlt mir ?

Dietmar

von Falk B. (falk)


Lesenswert?

@ Dietmar S. (jasmin)

>Im gesamten Filesystems meines Rechners findet sich auch keine Datei
>lcd-routines.h.

>Was habe ich falsch gemacht, was fehlt mir ?

Wie wäre es, wenn du den Text der lcd.h aus dem Tutorial in eine Datei 
kopieren würdest, welche lcd.h heisst und sich im Projektverzeichnis 
befindet?

von D. S. (jasmin)


Lesenswert?

Falk,

natürlich kann ich das so machen....

Ich glaube nur dass meine Installation da schon grundlegend irgendwie 
schief ist ?

Die lcd Routinen müssen doch schon integraler Bestandteil der 
Installation
sein, oder sehe ich das falsch ?

P.S.:
Wenn wir von lcd-routines.h  oder lcd.h sprechen, reden wir dann von 
identischen include Dateien ???


Dietmar

von Benedikt K. (benedikt)


Lesenswert?

Dietmar S. wrote:

> Die lcd Routinen müssen doch schon integraler Bestandteil der
> Installation
> sein, oder sehe ich das falsch ?

Ja, das siehst du falsch.

von D. S. (jasmin)


Lesenswert?

Im AVR-GCC Tutorial steht als Überschrift:

lcd-routines.c


Muß die Datei denn nicht LCD-Routines.h heißen ?

Der Name wird doch auch immer als include Datei referenziert !


Dietmar

von Benedikt K. (benedikt)


Lesenswert?

Ja, aber schau mal hier:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Programmierung
Diesen Code musst du in die lcd-routines.h kopieren.

von Falk B. (falk)


Lesenswert?

@  Dietmar S. (jasmin)

>lcd-routines.c

Genau.

>Muß die Datei denn nicht LCD-Routines.h heißen ?

Nöö, C ist case sensitive, unterscheidet also Gross- und 
Kleinschreibung.

>Der Name wird doch auch immer als include Datei referenziert !

Sicher. Es sind zwei Dateien, welche man aus dem Tutorial in zwei 
Dateien im Projektverzeichnis kopieren und im Projektbaum einfügen muss.

lcd-routines.h
lcd-routines.c

Hätte man auch mal fix probieren können, oder?

MFG
Falk

von D. S. (jasmin)


Lesenswert?

Im Wiki stand vor 5 Minuten noch eine andere Überschrift als Dateiname 
!!!

@ Falk

Probiert habe ich schon genug :-).


Jetzt funktioniert es, habe nun 2 Dateien lcd-routines.h
lcd-routines.c mit den entsprechenden Inhalten aus dem WIKI.

Gehören die besser in mein Projektverzeichnis oder besser in das 
entsprechenden Verzeichnisse des WINavr, bei mir 
C:\WinAVR-20080610\avr\include   ???

von Falk B. (falk)


Lesenswert?

@  Dietmar S. (jasmin)

>Im Wiki stand vor 5 Minuten noch eine andere Überschrift als Dateiname
>!!!

;-)
Nicht soviel Drogen nehmen. Die letzte Änderung ist von 9:40 heute.

>Probiert habe ich schon genug :-).

LSD brings auf Dauer nicht . . .

>Gehören die besser in mein Projektverzeichnis

Ja.

>oder besser in das
>entsprechenden Verzeichnisse des WINavr, bei mir

Nein. Es sind keine Standarddateien, sondern projektspezifische.

MFG
Falk

von D. S. (jasmin)


Lesenswert?

@ Falk,

Sack Zement, es ist noch zu früh für LSD, Alkohol habe ich heute auch 
eher mäßig konsumiert.... ;-).

Ok, die beiden Dateien habe ich jetzt ins Projekt-DVZ kopiert.

Frage:
Wie passe ich die LCD-Portpins an meine HW Umgebung an ?

Ich benötige Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = 
Portc.5 , E = Portc.1 , Rs = Portc.0

In der lcd-routines.h ist folgendes definiert:


#define LCD_PORT      PORTD
#define LCD_DDR       DDRD
#define LCD_RS        PD4
#define LCD_EN        PD5
// DB4 bis DB7 des LCD sind mit PD0 bis PD3 des AVR verbunden

DDR, RS und EN wie auch den kompletten Port kann ich also auf PortC 
(oder wohin auch immer) ändern,

wie kann ich aber DB4-DB7 ändern, respektive wie kann man das völlig 
variabel gestalten so das ich beispielsweise auch über diverse Ports 
verschieden freie Portpins nutzen kann ?

Ja, ich verstehe die Include Dateien nicht im Detail, bin ein C Beginner 
(immer wieder alle paar Jahre ?).


Dietmar

von Falk B. (falk)


Lesenswert?

@  Dietmar S. (jasmin)

>DDR, RS und EN wie auch den kompletten Port kann ich also auf PortC
>(oder wohin auch immer) ändern,

Ja.

>wie kann ich aber DB4-DB7 ändern, respektive wie kann man das völlig
>variabel gestalten so das ich beispielsweise auch über diverse Ports
>verschieden freie Portpins nutzen kann ?

Dann nimm die Bibliothek vom berühmten Peter Fleury. Dort ist das alles 
einstellbar. Den Code aus dem Tutorial aufbohren/umstricken ist eher 
aufwändig.

http://homepage.hispeed.ch/peterfleury/avr-software.html#libs

MFG
Falk

von D. S. (jasmin)


Lesenswert?

Falk,

danke, der Kollege hat wohl den Durchblick ;-).....


Dietmar

von Peter D. (peda)


Lesenswert?

Dietmar S. wrote:
> wie kann ich aber DB4-DB7 ändern, respektive wie kann man das völlig
> variabel gestalten so das ich beispielsweise auch über diverse Ports
> verschieden freie Portpins nutzen kann ?

Wenn es auch einfacher und Code sparender als von Peter Fleury sein 
darf:

http://www.mikrocontroller.net/attachment/30300/lcd_drv.zip


Peter

von D. S. (jasmin)


Lesenswert?

UI,

in der Tat ist das wohl nur ein Bruchteil des Codeumfangs :-).
Danke Peter, Du rettest meinen Atmega 8 vorm explodieren !

Dietmar

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.