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
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.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; }
Wäre toll wenn jemand die Lösung für das Problem finden würde.
mfg







Zitieren
Lesezeichen