Hallo, wollte jetzt zum ersten mal ein Display 16x2 an meinen Atmega 8 anschließen. Funktioniert aber nicht wirklich. Habe das Display im 4 bit Modus angeschlossen. Es leuchten in der ersten Zeile alle Kästchen. Habe die lcd-routines.h, lcd-routines.c und das Hauptprogramm (Beispiel 1) angelegt. Bekomme aber beim compilern Fehlermeldungen. Was mache ich falsch? Habe bei meiner Schaltung keinen externen Quarz, ist es auch ohne möglich? Wenn ja was muss ich ändern? Dieses hier löschen oder? #ifndef F_CPU #define F_CPU 3686400 #endif Ich hoffe ihr könnt mir weiterhelfen. Danke Gruß Sebastian
>Habe bei meiner Schaltung keinen externen Quarz, ist es auch ohne >möglich? Ja.
>Dann muss du aber dem Compiler sagen, dass die Frequenz eine andere ist
Schon richtig, aber wenn der Compiler eine zu hohe Taktrate
vorgespiegelt bekommt verlängern sich die Delays. Macht also
erstmal nichts aus. Wir wollen ja Text auf dem Display
sehen.
@Ingo
Du hast recht, erstmal müssen die Errors weg. Sonst
wird das nix.
Ein Bild vom Aufbau könnte auch hilfreich sein.
Danke erstmal für eure Antworten. Kann mir von euch einer vll sagen was das für welche Fehler sind die auf dem Bild zu sehen sind. Habe ja am Programm bis jetzt noch nichts geändert. Wenn ich den internen Taktgeber verwende kann ich doch dies alles weglassen: #ifndef F_CPU #define F_CPU 3686400 #endif In dieser Anleitung steht auch das die Optimierung beim Compilern eingeschaltet werden muss. Wo kann ich dies machen??? http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung
Wenn du dein gesamtes Programm mal anhängst wird man dir sicher helfen können.
Unter diesem Link ist das ganze Programm zu sehen...(lcd-routines.h, lcd-routines.c, LCD Beispiel 1) http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung
Die Zeilennummern in deinem Screenshot kann ich keinen sinnvollen Zeilen im Listing des Tutorials zuordnen. Deshalb rate ich: Das #include <stdint.h> vergessen; der Compiler kennt uint8_t nicht. Abhilfe in lcd-routines.c wäre dann:
1 | #include <avr/io.h> |
2 | #include <stdint.h> |
3 | #include "lcd-routines.h" |
4 | #include <util/delay.h> |
Bzw. am Anfang der Datei lcd-routines.h:
1 | #include <stdint.h> |
http://www.nongnu.org/avr-libc/user-manual/group__avr__stdint.html Das Optimierungsflag stellst du im AVR-Studio 4 in den Projekteinstellungen ein. Gleich unter den Dropdown-Menüs für Prozessortyp und Taktrate.
Hallo, habe hier auch Probleme. Verwende AVR Studio 5. Beim Build bekomme ich 4 Fehler undefined reference to `lcd_init' das selbe mit data, setcursor, string. Kann es sein das das Bild von Sebastian von einer früheren Studio Version stammt. Kann mir jemand den Menue-Punkt nennen mit den ich source files zum Projekt hinzufügen kann ? Mit re klick, wie in anderen Beträgen beschrieben, komme ich da nicht weiter mfg framk
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.