Ich habe ein Projekt für welches ich ein Display benötige. Es wird mit einem Atmega16 angesteuert und es handelt sich um ein Display mit HD44780 Controller 2x16 Zeichen. Beim lcd-routines.c und lcdroutines.h im anhang handelt es sich um den quellcode vom avr-gcc tutorial von mikrocontroller.net, welcher von mir für den 8bit-Modus angepasst wurde. Das Problem ist folgendes: Wenn ich einen Text aufs LCD schreibe funktioniert das wie gewollt. Es ist auch gleich nach dem Init möglich den Cursor in die zweite Zeile zu setzten und dann ein Text zu schreiben. Schreibe ich allerdings bevor ich den Cursor in die zweite Zeile setze schon einen Text als z.B. Text - Cursor setzen Text dann sieht das am Display so aus: Text komisches Zeichen Text und das alles in der ersten Zeile. Führe ich irgend ein sonstiges Command(Cursor Home, Clear,...) aus bekomme ich nur ein komisches Zeichen. Wäre um ein Lösung für das Problem sehr froh und hoffe ich habe mich verständlich ausgedrückt. Danke lg S!m0n
Mir fehlt noch etwas Kaffe im Blut, daher bin ich mir gerade nicht sicher, ob
1 | LCDC_PORT &= ~(1<<LCD_RS) | ~(1<<LCD_RW); // RS und RW auf 0 setzen |
wirklich das tut, was es soll. Ich bin fast davon überzeugt, das es das nicht tut. Bitte ersetze das mal Testweise durch
1 | LCDC_PORT &= ~(1<<LCD_RS); |
2 | LCDC_PORT &= ~(1<<LCD_RW); |
Bitte an beiden Stellen im Quelltext
jop habs auch gerade gemerkt danke. falls jemand den code verwenden möchte einfach lcd_command vom anhang mit diesem tauschen dann müsste der 8bit-modus gehen. void lcd_command(uint8_t temp1) { LCDC_PORT &= ~(1<<LCD_RS) & ~(1<<LCD_RW); // RS und RW auf 0 setzen LCDD_PORT = temp1; lcd_enable(); _delay_us(42); }
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.