ldi r20, 0b00001111 // Display/Curser(-blinken) ein
60
rcall lcd_command
61
ldi r20, 0b00010100
62
63
ret
64
65
lcd_command: // Befehl in r20
66
mov r21, r20
67
swap r20
68
andi r20, 0b00001111
69
70
out LCD_PORT, r20
71
rcall enable
72
73
andi r21, 0b00001111
74
out LCD_PORT, r21
75
rcall enable
76
77
rcall delay100us
78
ret
79
80
lcd_data:
81
mov r21, r20
82
swap r20
83
andi r20, 0b00001111
84
sbr r20, (1<<PIN_RS) // RS auf Daten umstellen (1)
85
86
out LCD_PORT, r20
87
rcall enable
88
89
andi r21, 0b00001111
90
sbr r21, (1<<PIN_RS) // RS auf Daten umstellen (1)
91
out LCD_PORT, r21
92
rcall enable
93
94
rcall delay100us
95
rcall delay100us
96
ret
97
98
lcd_clear:
99
ldi r20, 0b00000001
100
rcall lcd_command
101
rcall delay5ms
102
ret
Ist im grunde der aus dem Tutorial nur etwas verändert...
Gibt es hier drin i-einen Fehler? Habs eig gestern schon mal geschaft
etwas anzuzeigen aber jetzt gehts nichtmehr!? Hab nur am Code bischenwas
verändert aber eig nur Makros eingefügt und so... Die Schaltung hab ich
auch nochmal neu aufgebaut! Hab hier im Forum was gelesen, dass diese
Controller sehr anfällig gegen elektrostatische Aufladung sind oder so..
Kann das sein das ich den zerstört hab?
PS. verwende wie man sieht 4-Bit Modus und 16 MHz Quarz
@lcd display (Gast)
>Ich versuch mich gerade daran ein LCD(HD44780) mit dem ATMega8>anzusprechen! Ich hab folgenden Code>Ist im grunde der aus dem Tutorial nur etwas verändert...
Warum? Wenn du Anfänger bist solltest du dich erstmal zu 100% ans
Tutorial halten. Nimm also den Code UNVERÄNDERT aus dem Tutorial und
dann sehen wir weiter.
MfG
Falk
Es hat ja schon funktioniert mit dem obigen Code aber jetzt gehts
nichtmehr! Habs jetzt auch nochmal mit dem Code ausm Tutorial versucht
und da zeigts gar nichts an...
Hallo lcd display,
bin jetzt gerade kein Atmega Experte, aber wenn ich mir Deine "main"
anschaue, dann machst Du ein Init und dann ein Clear und danach eine
Endless Loop. An welcher Stelle werden den Daten ausgegeben ?
Gruß
Naja gut, ist schon korrekt.
Vielleicht eine ganz blöde Sache wie falsch eingestellter Kontrast.
Zudem kann es sein, dass die Delays etwas zu knapp sind. Je nach HD44780
oder Kompatiblen kann das CLEAR bis 40ms brauchen.
Gruß
@Michael Leusink
lcd_clear ist doch sowieso der letzte befehl und danach kommt gar nichts
mehr... der hat ja sowieso solang zeit wie er gerade braucht!
@max power
Hab ich geändert funktioniert aber immer noch nicht
Ist es theoretisch möglich das der Controller defekt ist? Kann man das
testen? Es wird einfach nur noch eine Zeile mit schwarzen Kästchen
angezeigt!
lcd display schrieb:> Ist es theoretisch möglich das der Controller defekt ist? Kann man das> testen?
Sicher.
Ein bischen Phantasie!
LEd anhängen und nachsehen ob man die zum Leuchten bringt.
Dann Gegentest: per Programm nicht leuchten lassen
Wer will kann dann, zur Übung, noch einen drauf setzen: LED blinken
lassen.
Spätestens wenns blinkt steht zweifelsfrei fest: Der µC arbeitet.
Aber wenn man ehrlich ist:
In den seltensten Fällen ist es ein Hardware-Defekt. In den meisten
Fällen ist es ein Programmfehler :-)
Was allerdings vorkommt: Kabl ist aus seiner Halterung gerutscht oder
überhaupt abgerissen (vor allen an den Enden, an denen das Lot die
Kabelenden sperrig macht)
>Ist es theoretisch möglich das der Controller defekt ist? Kann man das>testen? Es wird einfach nur noch eine Zeile mit schwarzen Kästchen>angezeigt!
Brenn mal die HEX-Datei aus dem Anhang. Wenns damit nicht geht
stimmt was mit der Hardware nicht. Ist für ein 2x16 LCD compiliert.
so ich habs g ist eig echt lächerlich...
ein das Kabel an einer Datenleitung ist abgebrochen! hat man ganz
schlecht geseh... Trotzdem Danke für eure Hilfe