Hi Displayprogrammierer!
Ich probier grad verzweifelt, ein 5x8 2-Zeilen Display an meinem atmega8 zum Laufen zu kriegen. Erst mal will ichs
ja nur initialisieren und dann einschalten, mit blinkendem Cursor.
Anschlüsse an den atmega habe ich nach Beispiel auf mikrocontroller.net vorgenommen (allerdings mit PORTC statt PORTD) und schon mehrmals kontrolliert..
Problem: Das LCD blinkt bei den einzelnen Schritten auf, am Ende, wenn eigentlich der Cursor zu sehen sein sollte, "glimmt"
die 1. Zeile nur schwach...
Hier mein Programm:
Wär sehr dankbar für einen Tipp!Code:#include <avr/io.h> void wait(uint16_t delay_time) { // Funktion "Warteschleife" ... } void write(void) { PORTC|=0x20; //E auf 1 setzen PORTC&=0xdf; //E auf 0 setzen, Display übernimmt Befehl bei fallender E-Flanke } int main (void) { DDRC=0xff; PORTC=0x00; wait (500); PORTC=0x03; //8-bit Modus, 3x schreiben write(); wait (500); write(); wait (500); write(); wait (500); PORTC=0x02; //4-bit Modus initialisieren write(); wait (5000); PORTC=0x02; //oberes Nibble zum Befehl 4bit, 2 Zeilen, 5x8 Zeichen write(); wait (5000); PORTC=0x08; //unteres Nibble zum Befehl 4bit, 2 Zeilen, 5x8 Zeichen write(); wait (5000); PORTC=0x00; //oberes Nibble, Display ein write(); wait (5000); PORTC=0x0f; //unteres Nibble, Display ein, Cursor ein, blink ein write(); }
MfG, Cvecko!







Zitieren

Lesezeichen