Hat vielleicht schon jemand das Optrex 5008 mit einer 4 bit Ansteuerung zum Laufen gebracht ? Ich würde mich über etwas Beispielcode freuen...
Ich habe die Lib von Knut Baardsen gefunden. Da ich das Display im 4-bit Modus ansteuern will habe ich die folgenden Änderungen gemacht: void lcd_write_data(unsigned char data) { /* originaler Code */ LCDDATAPORT = data; LCDCTLPORT &= ~(A0); LCDCTLPORT &= ~(WR); LCDCTLPORT |= WR; */ // ab hier neue 4-bit routinen /* output high nibble first */ LCDDATAPORT = (LCDDATAPORT & (~(0x0F << LCD_DATA_OFFSET))) | ((data & 0xF0) >> (4-LCD_DATA_OFFSET)); LCDCTLPORT &= ~(A0); // wie gehabt, siehe oben LCDCTLPORT &= ~(WR); LCDCTLPORT |= WR; delay_ms(2); // sicher ist sicher ? /* output low nibble */ LCDDATAPORT = (LCDDATAPORT & (~(0x0F << LCD_DATA_OFFSET))) | ((data & 0x0F) << LCD_DATA_OFFSET); LCDCTLPORT &= ~(A0); LCDCTLPORT &= ~(WR); LCDCTLPORT |= WR; } Gleiches Schema für die lcd_write_command Funktion. Hier noch die defines: #define LCD_DATA_OFFSET 0 // PB0 = 0; PB3 = 3 etc. // Data port #define LCDDATAPIN PINA #define LCDDATADDR DDRA #define LCDDATAPORT PORTA // Control port #define LCDCTLPIN PINB #define LCDCTLDDR DDRB #define LCDCTLPORT PORTB // Control pins #define RST 0x01 #define RD 0x02 #define WR 0x03 #define A0 0x04 // LCD display data #define LCD_X_SIZE 128 #define LCD_Y_SIZE 128 #define LCD_XTAL 10000000 Das Display wird scheinbar initialisiert (gelöscht), allerdings kann ich weder Text noch Grafik schreiben. Ist die Umsetzung auf 4 Bit oben korrekt ?
>Ist die Umsetzung auf 4 Bit oben korrekt ?
Nein, denn der Controller unterstützt keine 4bit. Aber das hast du ja
bestimmt beim Lesen des Datenblatts schon gemerkt...
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.