www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem bei LCD Ansteuerung


Autor: Michael Justinger (juston)
Datum:

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

Autor: Michael Justinger (juston)
Datum:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Autor: Mr K. (mrk)
Datum:

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

Autor: Michael Justinger (juston)
Datum:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Autor: Michael Justinger (juston)
Datum:
Angehängte Dateien:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
korrigier erst mal die Multiple Definitions

Autor: Michael Justinger (juston)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
danke für eure Hilfe, dass Programm läuft jetzt.

Gruß
Michael

Autor: Michael Justinger (juston)
Datum:

Bewertung
0 lesenswert
nicht 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:
#include <avr/io.h>
#include "lcd-routines.h"
#include <stdlib.h>
#define  F_CPU 8000000
#include <util/delay.h>
 
int variable;
 
int main(void)
{
    lcd_init();
 
    set_cursor(0,2);
 
    
    {
       char Buffer[20]; 
       itoa( variable, Buffer, 10 ); 
 
       lcd_string( Buffer );
    }

 
    while(1)
    {
      _delay_ms(100);

      variable ++;
    }
 
    return 0;
}

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Autor: Michael Justinger (juston)
Datum:

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

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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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