Problem Initialisierung EA DIP204
Hallo Leute!
Versuche seit ein paar Tagen mein EA DIP204 Display an meinem ATM32 zum Laufen zu bringen. Der Controller läuft einwandfrei, Lötstellen ect. überprüft. Jede Ausgabe auf den Port ist auch gemessen und funktioniert, dh. vermute ich, dass das Problem an meiner Software liegt. Hab mich zwar an die Beiträge vom Forum und vom Netz gehalten, jedoch noch kein Erfolg. SW ist zwar noch in der Entwicklung (Funktion zum Command / Daten schicken kommt noch extra hinzu) jedoch sollte der Code mal funktionieren bis ich weitermache.
folgendes ist meine Routine zur initialisierung des Displays im 4 bit mod.
Pin belegung
D0-D3 GND
D4 PA0
D5 PA1
D6 PA2
D7 PA3
RS/CS PC4
R/W GND
E PC6
Code:
void init_lcd(void)
{
sleep_ms(100);
//Port A als Ausgang
DDRA=0xff;
PORTA=0x00;
//4 bit Mod, high Nibbel 0010
enable_lcd();
PORTA=0x02;
sleep_ms(10);
PORTA=0x00;
//4 bit Mod, low Nibbel RE=1 0100
enable_lcd();
PORTA=0x04;
sleep_ms(10);
PORTA=0x00;
//4 Line Mod, high Nib 0000
enable_lcd();
PORTA=0x00;
sleep_ms(10);
//low Nib 1001
enable_lcd();
PORTA=0x09;
sleep_ms(10);
PORTA=0x00;
//4 Bit Mod, RE=0; higt Nib 0010
enable_lcd();
PORTA=0x02;
sleep_ms(10);
PORTA=0x00;
//low Nib 0000
enable_lcd();
PORTA=0x00;
sleep_ms(10);
//Entry mod set, cursor auto increment, high nib 0000
enable_lcd();
PORTA=0x00;
sleep_ms(10);
//low nib 0110
enable_lcd();
PORTA=0x06;
sleep_ms(10);
PORTA=0x00;
//Clear Display, home cursor high nib 0000
enable_lcd();
PORTA=0x00;
sleep_ms(10);
//low nib 0001
enable_lcd();
PORTA=0x01;
sleep_ms(10);
PORTA=0x00;
//Display on, cursor on, blink on, high nib 0000
enable_lcd();
PORTA=0x00;
sleep_ms(10);
//low nib 1111
enable_lcd();
PORTA=0x0f;
sleep_ms(10);
PORTA=0x00;
}
Im main rufe ich die Fkt init_lcd auf. Code lässt sich kompilieren und übertragen, jedoch ist leider kein blinkender Cursor am Display zu erkennen.
Wäre toll wenn jemand die Lösung für das Problem finden würde.
mfg
Liste der Anhänge anzeigen (Anzahl: 2)
Re: Problem Initialisierung EA DIP204
Hallo
Zitat:
Zitat von Udam
Hallo Leute!
Versuche seit ein paar Tagen mein EA DIP204 Display an meinem ATM32 zum Laufen zu bringen.
.....
folgendes ist meine Routine zur initialisierung des Displays im 4 bit mod.
Kannst Du mal Deine enable_lcd(); veröffentlichen, damit man sehen kann was Du dort machst ?
Ich sehe zwar in den Kommentaren, dass Du das "RE" schaltest, kann das aber nirgends im Code entdecken. Wo machst Du das ?
Uebrigens
Das EA-DIP lässt sich ja auch seriell betrieben.
Ich habe es hier immer im seriellen Betrieb. D.h. man braucht nur 2 Leitungen und spart I/O Ports. SID (Serial Input Data) and SCLK (Clock Line)
Wenn Du dafür Sourcen / Ideen / Treiber brauchst, dann kannst Du sie gerne bekommen.
Einen Treiber für das Display im seriellen Betrieb - allerdings für ein Ethernut Board - kannst Du finden unter :
http://www.tklinux.de Dort auf Allg. Elektronik gehen.
Einen Treiber fuer den Mega32 lege ich hier mal bei. - Allerdings halt eben für den seriellen Betrieb.
Gruss
Frank