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
^^ kann mir den da keiner helfen? Ich bin noch nicht wirklich weiter gekommen.
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.
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.
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
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.
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
Hallo, danke für eure Hilfe, dass Programm läuft jetzt. Gruß Michael
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 | }
|
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.