Hi, Ich habe übers verlängerte Wochenende mich endlich mal ans Mikrocontroller Tutorial gesetzt, und wollte einen LCD ansteuern (1602A; HD44780 kompatibel) uC programmieren geht Problemlos, nur zur Ansteuerung bekomme ich es nicht hin, dass er ein Zeichen Ausgibt. Wäre jemand so nett den Code zu überfliegen, und evtl. auf Fehler hinzuweisen?
1 | LCD_Control |= _Enable; |
2 | _delay_ms(10); |
3 | LCD_Control ^= _Enable; |
Da reißt dem Controller vielleicht der Geduldsfaden. Daran wird's nicht liegen, aber was steht dafür in deinem Datenblatt als Minimalzeit.
Es fehlt ausserdem nach der Init der Befehl 0x0C, um das Display zumindest anzuschalten. Kann auch 0x0E sein, dann ist der Cursor auch gleich mit an. Wolfgang schrieb: > ber was steht dafür in deinem Datenblatt als > Minimalzeit. Hitachi sagt mindestens 1000nS = 1uS Enable Cycle Time.
Habs jetzt nicht genau gefunden, meine aber 220ns waren angegeben, aber mit 1us, 100us, 1ms funktioniert es auch nicht, aber das ich zu lange warte war ein berechtigter Einwand, vielen Dank für den Tipp schonmal.
So, Dass mit dem Display Einschalten hatte ich tatsächlich nicht gewusst, naja, Initialisierung komplett nach Datenblatt durchgeführt, und doch kein Zeichen bzw. Cursor auf dem Display. Stimmt evtl. etwas bei der Daten-/Befehlsende Funktion nicht? Anbei die nachgebesserte Version.
Mal was ganz Anderes: hast Du auch schon an der Kontrasteinstellung gedreht? Vielleicht siehst Du einfach nur nichts! Gruß Dietrich
spess53 schrieb: >>LCD_Control ^= _RS; > > Ein XOR ist hier fehl am Platz Habe ich durch >LCD_Control &= 0xFE; ersetzt. und @Dietrich ja am Kontrastpoti drehe ich nach jedem Flashvorgang wie wild, in Hoffung dass sich was tut (benutze ein 25k Poti).
Endlich gefunden, Erfolgserlebnis^10. >LCD_Control &= 0xFC; muss >LCD_Control &= 0xFB; heißen und schon läufts. Vielen Dank an alle die mir geholfen haben.
Hi >LCD_Control &= 0xFC; >muss >LCD_Control &= 0xFB; >heißen und schon läufts. Warum nicht gleich LCD_Control &= ~(1<<_RS); ? MfG spess
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.