Hallo, vor einiger Zeit schaffte ich mir ein "myAVR Board 2 USB" und das dazugehörige LCD-Addon an. Die Beispiel-Programme, sowie einige eigene Programme funktionieren einwandfrei. Jetzt versuche ich, jedoch vergeblich, Werte von Variablen auf dem LCD auszugeben. Als Grundlage für meine Versuche dient mir das Tutorial "AVR-GCC-Tutorial" dieser Seite. Dieser Code lässt sich auch kompilieren und auf den Mikrocontroller Atmega8 übertragen, als Entwicklungsumgebung verwende ich "AVR Studio 4". Leider passiert danach nichts mehr, es ist lediglich die erste Zeile komplett schwarz. Die anderen Beiträge in diversen Foren halfen mir leider nicht weiter. Da ich nicht weiter weiß, hoffe ich, dass jemand mir sagen kann wie ich den im Anhang befindlichen Code ändern muss, damit die Anzeige den Wert korrekt wiedergibt. Mit freundlichen Grüssen steffen3
Kein Wunder. Dieser Code geht fix davon aus, dass die Datenleitungen zum LCD am Ausgabeport an den Pins 0 bis 3 hängen. Das tun sie aber in deiner Beschaltung nicht. Die Daten- leitungen hängen an den Pins 4 bis 7. Das wirst du umschreiben müssen.
@ Steffen Kreutzberg (steffen3) >Leider passiert danach nichts mehr, es ist lediglich die erste Zeile >komplett schwarz. Klar, der Code geht davon aus, dass die Bit 0..3 für den Datenbus verwendet werden, nicht 4..7. Frei wählbar sind nur RS und E. MFG Falk P.S. Deine Ansteuerung der Hintergrundbeleuchtung ist auch sehr gewagt.
Für lcd_data würde das dann so aussehen
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
lcd_command muss ebenfalls geändert werden. Aber das lasse ich als Übung für den angehenden Programmierer.
Herzlichen Dank für die schnellen Antworten.
so, die Funktion
1 | |
habe ich wie oben beschrieben umgeschreiben, die Funktion
1 | |
habe ich folgendermaßen umgeschrieben aber es funktioniert nicht
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
Ich wäre dankbar wenn man mir nochmals helfen kann.
Gast
#705983
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
blöder fehler ;) hth. Jörg
danke erst mal.habe die beiden so geändert.
1 | |
2 | |
3 | |
4 | |
5 | |
funktioniert aber immer noch nicht, jetzt frage ich mich ob ich in diese Methode
1 | |
nicht auch anpassen muss, so langsam weiß ich nicht mehr weiter.
@ Steffen Kreutzberg (steffen3) >danke erst mal.habe die beiden so geändert. Passt. >funktioniert aber immer noch nicht, jetzt frage ich mich ob ich in diese >Methode >public void lcd-init(void) Ja, ist aber keine Methode, sondern eine ganz normale Funktion. Wir machen hier "nur" C, kein C++.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
Sollte jetzt laufen. MfG Falk
nochmals danke jetzt funktionierts.
@ Steffen Kreutzberg (steffen3)
>nochmals danke jetzt funktionierts.
Dahast du aber Glück gehabt, ist noch ein Fehler drin :-(
So ist es jetzt hoffentlich richtig.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
MfG Falk
In solchen Fällen mach ich folgendes. Ich hol mir für AVR-Studio die Hapsim Erweiterung http://www.helmix.at/hapsim/ und konfiguriere mir dort mal ein LCD. Und dann steppe ich im Code in einzelschritten durch und sehe im Simulator nach, ob alle Pins ihren Zustand so ändern wie ich das haben will. PS: Wenn alles nichts fruchtet: Hol dir die LCD-Library vom Peter Fleury. Die ist auch bei den Datenpins frei konfigurierbar.
danke für die zahlreichen hilfen.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.