Forum: Mikrocontroller und Digitale Elektronik LC-Display Problem


von S!m0n (Gast)


Angehängte Dateien:

Lesenswert?

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

von Manuel -. (ploana)


Lesenswert?

hallo

mit welchem compiler arbeitest du??

Code Vision AVR, AVR Studion ??

von Niels H. (monarch35)


Lesenswert?

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

von S!m0n (Gast)


Lesenswert?

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);
}

von Lutz (Gast)


Lesenswert?

Oder

LCDC_PORT &= ~( (1<<LCD_RS) | (1<<LCD_RW) );        // RS und RW auf 0 
setzen

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
Noch kein Account? Hier anmelden.