Forum: Mikrocontroller und Digitale Elektronik Problem bei LCD Ansteuerung


von Michael J. (juston)


Lesenswert?

Hallo,
ich habe gestern Abend angefangen in dem AVR-GCC-Tutorial den Abschnitt 
''LCD-Ansteuerung'' durchzulesen und danach mit dem Anschließen eines 
2x16 Zeichen LCD Display begonnen.

Heute Morgen habe ich dann mit der Programmierung begonnen bzw. den 
Quelltext aus dem Tutorial kopiert jedoch kommt beim Kompilieren der 
Fehler:

 ../LCD_Test.c:7:26: lcd-routines.h: No such file or directory.

Wo muss ich diese Datei einfügen?
Die Datei lcd-routines.c habe ich bei Source Files hinzugefügt. Muss die 
Andere Datei auch dazu, ich dachte eigentlich, dass die *.h Dateien bei 
dem AVR Studio dabei wären.

Gruß
Michael

von Michael J. (juston)


Lesenswert?

^^
kann mir den da keiner helfen?
Ich bin noch nicht wirklich weiter gekommen.

von Karl H. (kbuchegg)


Lesenswert?

Na ja, die Fehlermeldung sagt es doch schon

> ../LCD_Test.c:7:26: lcd-routines.h: No such file or directory.

Auf dem Verzeichnis auf dem Lcd_Test.c residiert, konnte
der Compiler die Datei lcd-routines.h nicht finden.

Wenn du dein lcd-routines.c auf einem anderen Verzeichnis
gespeichert hast, dann wird es dort wohl ein lcd-routines.h
geben.

Ändere den Code in LCD_Test.c so ab, dass im #include
der korrekte Pfad zu lcd-routines.h steht. Du kannst
dazu auch relative Pfadangaben benutzen.

von Mr K. (mrk)


Lesenswert?

Hallo Michael
also ich kenne mich mit C nicht aus aber ich kann dir mir 99% Sicherheit 
sagen das dass lcd-routines.h bestimmt nicht Standartmässig bei dem AVR 
Studio dabei ist.
Ich glaub lcd-routines.h muss sich in dem Ordner befinden wo sich dein 
lcd_test.c auch befindet.

von Michael J. (juston)


Lesenswert?

Habe die Datei lcd-routines.h erstellt und in denselben Ordner getan.
Jetzt bekomme ich die Meldung:

gcc plug-in: Error: Object file not found on expected location 
J:\Dokumente und 
Einstellungen\M.Justinger\Desktop\LCD_Test\default\LCD_Test.elf

Die Datei gibt es auch nicht, ich weis auch nicht was das für eine Datei 
ist und was da rein gehört.


Gruß
Michael

von Karl H. (kbuchegg)


Lesenswert?

Michael Justinger wrote:
> Habe die Datei lcd-routines.h erstellt und in denselben Ordner getan.
> Jetzt bekomme ich die Meldung:
>
> gcc plug-in: Error: Object file not found on expected location
> J:\Dokumente und
> Einstellungen\M.Justinger\Desktop\LCD_Test\default\LCD_Test.elf

Punkt 1
  Es ist in vielen Fällen unklug, in Dateinamen Dinge wie
  Leerzeichen und Sonderzeichen zu benutzen. Es gibt immer noch
  eine Reihe von brauchbaren Tools, die damit nicht klar kommen
  und für die die gute alte DOS-Konventionen gelten.
  Besonders Leerzeichen sind ein nie enden wollender Quell der
  Freude, äh des Ärgers.
  Überlass Datei und Pfadnamen mit Leer- und Sonderzeichen den
  BWL Leuten. Die brauchen sowas, weil sie sich nicht merken können,
  daß ihr "Dokument zur Firmenumstrukturierung 2008" in der Datei
  UMSTR08.TXT gespeichert ist.
  Für einen echten Software-Entwickler existiert nur der normale
  7-Bit ASCII Code. Also Buchstaben, Ziffern und die Sonderzeichen
  die auf der Tastatur über den Ziffern sitzen. Dazu noch das Gesocks
  rechts vom 'M' auf der Tastatur. Keine Umlaute, keine
  griechischen Buchstaben!

Punkt 2
  Die ELF Datei entsteht während des Überstzungsvorgangs. Sie ist
  letztendlich Output des Compile/Link Vorgangs.
  Wenn sie nicht existiert, dann gab es wahrscheinlich einen
  Fehler beim Erstellen des Projekts. Wechsle mal in den Build-Tab
  in der AVR-Studio Ausgabe und sieh nach, ob es einen Fehler gab.

von Michael J. (juston)


Angehängte Dateien:

Lesenswert?

Karl heinz Buchegger wrote:

> Keine Umlaute, keine griechischen Buchstaben!
Wo sind denn die Umlaute und griechischen Buchstaben? Lehrzeichen habe 
ich aus dem Dateipfad entfernt.

Der einzige Fehler der entsteht ist der, dass diese .elf Datei nicht 
erstellt werden konnte.

Im Anhang mal ein Screenshot von dem Build Verlauf.

Gruß
Michael

von Karl H. (kbuchegg)


Lesenswert?

korrigier erst mal die Multiple Definitions

von Michael J. (juston)


Lesenswert?

Hallo,
danke für eure Hilfe, dass Programm läuft jetzt.

Gruß
Michael

von Michael J. (juston)


Lesenswert?

Hallo,
ich möchte eine variable hochzählen und das Ergebnis auf dem LCD Display 
in Zeile 2 ausgeben.

Das Problem ist jedoch das ich immer nur eine '0' zu sehen bekomme.
Kann mir bitte jemand helfen.

Hier das Hauptprogramm:
1
#include <avr/io.h>
2
#include "lcd-routines.h"
3
#include <stdlib.h>
4
#define  F_CPU 8000000
5
#include <util/delay.h>
6
 
7
int variable;
8
 
9
int main(void)
10
{
11
    lcd_init();
12
 
13
    set_cursor(0,2);
14
 
15
    
16
    {
17
       char Buffer[20]; 
18
       itoa( variable, Buffer, 10 ); 
19
 
20
       lcd_string( Buffer );
21
    }
22
23
 
24
    while(1)
25
    {
26
      _delay_ms(100);
27
28
      variable ++;
29
    }
30
 
31
    return 0;
32
}

von Karl H. (kbuchegg)


Lesenswert?

Michael Justinger wrote:
> Hallo,
> ich möchte eine variable hochzählen und das Ergebnis auf dem LCD Display
> in Zeile 2 ausgeben.
>
> Das Problem ist jedoch das ich immer nur eine '0' zu sehen bekomme.

Ist irgendwo logisch.
Dein Programm macht:

   Initialisiere das LCD
   Gib 0 am LCD aus

   wiederhole für immer {
     incrementiere eine obskure Variable,
     die an dieser Stelle niemand mehr braucht,
     weil niemand mehr sich für das Ergebnis
     interessiert
   }

Es wird wohl hilfreich sein, wenn du die Ausgabe ebenfalls
in die Endlosschleife hineinziehst. Denn wenn du die Ausgabe
der Variablen nur einmal machst, dann wirst du auch nur eine
Ausgabe erhalten. Und zu diesem Zeitpunkt ist die Variable
nun mal 0.

Eine Programmiersprache ist nicht wie Excel, die sich selbst eine
mögliche Reihenfolge zusammensucht. Du musst in einem Programm
schon auf die Reihenfolge aufpassen, in der Dinge zu geschehen
haben.

von Michael J. (juston)


Lesenswert?

Hallo,
schön das doch noch jemand diesen Thread gefunden hat.

Ich hatte ja nun den ganzen Sonntag Zeit mich mit dem Programm zu 
beschäftigen und auch das Problem beheben können.

Allerding habe ich noch ein Problem mit dem Delay, welches praktisch 
keine Wirkung hat. Auch die Ausgabe von Text in der 1. Zeile und dem 
Wert einer variable in der Zweiten Zeile ist irgendwie komisch.

Beitrag "Problem mit Delay und LCD Ausgabe."

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.