Forum: Mikrocontroller und Digitale Elektronik Ausgabe eines Hex Wertes am Port "D0-D7"


von Andreas (Gast)


Lesenswert?

Hallo,

ich bastel gerad an einer Ausgabe für ein LCd Display mit einem AT91 und 
bin nun an dem Punkt gelandet wo ich eure Hilfe brauche.
Vielleicht sehe ich den Wald vor lauter bäumen nicht mehr, aber 
irgendwie sehe ich keine Fehler:

Folgende Function:

void ks0108_write_cmd (uint8_t data, uint8_t chip) {
  AT91F_PIO_ClearOutput (pPIO, LCD_DATA | LCD_RW | LCD_CS1 | LCD_CS2);

  if (chip == left)  {
    AT91F_PIO_ClearOutput (pPIO, LCD_CS2);
    AT91F_PIO_SetOutput (pPIO, LCD_CS1);
      pPIO->PIO_SODR = (LCD_DATA | data);
  }
  if (chip == right)  {
    AT91F_PIO_ClearOutput (pPIO, LCD_CS1);
    AT91F_PIO_SetOutput (pPIO, LCD_CS2);
      pPIO->PIO_SODR = LCD_DATA & data;
  }
  ks0108_en();
  AT91F_PIO_ClearOutput (pPIO, LCD_DATA | LCD_RW | LCD_CS1 | LCD_CS2);
}
//---------------------------------------------------------------------- 
-------------

LCD_DATA = D0-D7

Folgende Fehlermeldung:

Sobald ich LCD_DATA mit etwas verunde bekomme ich an allen Ports (D0-D7) 
ein High, ansonsten nichts.

pPIO->PIO_SODR ist der AT91 Befehl um eine 1 am Portausgang zu setzen.


Sieht einer mein groben Fehler?

Vielen Dank

Gruß

Andreas

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.