Forum: Mikrocontroller und Digitale Elektronik Optrex 5008 4-bit Ansteuerung (GCC)


von Thomas (Gast)


Lesenswert?

Hat vielleicht schon jemand das Optrex 5008 mit einer 4 bit Ansteuerung
zum Laufen gebracht ?
Ich würde mich über etwas Beispielcode freuen...

von Thomas (Gast)


Lesenswert?

Ach ja, ist ein SED1335 Controller drauf.
Vielen Dank!

von Thomas (Gast)


Lesenswert?

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 ?

von Benedikt (Gast)


Lesenswert?

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