Gast
#654603
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