galdo
26.05.2007, 16:22
Hallo,
ich habe ein Problem mit der LCD-Steuerung. Wenn ich manuell die benötigten Datenbits setze klappt alles wunderbar, will ich das ganze aber in der Form automatisieren, dass ich nur einen Hex-Wert in die Funktion geben kann, macht das Display ganz komische Sachen (Zeigt schwarze / weiße Blöcke an, oder Zeichen, die ich nicht hex-codiert habe).
Wer hat eine Idee?
unsigned char data;
data = 0x11;
AT91F_PIO_SetOutput(arm_portb, lcd_rs); //data mode
AT91F_PIO_ClearOutput(arm_portb, lcd_rw);
for (j=0; j < 8; j++) {
if ((data & (1<<j)) == 0) {
//mask the j-th bit and set or clear it
AT91F_PIO_SetOutput(arm_porta, (1 << j));
} else {
AT91F_PIO_ClearOutput(arm_porta, (1 << j));
}
}
enable_lcd();
Beim ARM kann man leider nicht auf den ganze Port zugreifen, so wie ich das weiß... - deswegen mach ich das bitweise...
Hat jemand eine Idee?
Danke GALDO
ich habe ein Problem mit der LCD-Steuerung. Wenn ich manuell die benötigten Datenbits setze klappt alles wunderbar, will ich das ganze aber in der Form automatisieren, dass ich nur einen Hex-Wert in die Funktion geben kann, macht das Display ganz komische Sachen (Zeigt schwarze / weiße Blöcke an, oder Zeichen, die ich nicht hex-codiert habe).
Wer hat eine Idee?
unsigned char data;
data = 0x11;
AT91F_PIO_SetOutput(arm_portb, lcd_rs); //data mode
AT91F_PIO_ClearOutput(arm_portb, lcd_rw);
for (j=0; j < 8; j++) {
if ((data & (1<<j)) == 0) {
//mask the j-th bit and set or clear it
AT91F_PIO_SetOutput(arm_porta, (1 << j));
} else {
AT91F_PIO_ClearOutput(arm_porta, (1 << j));
}
}
enable_lcd();
Beim ARM kann man leider nicht auf den ganze Port zugreifen, so wie ich das weiß... - deswegen mach ich das bitweise...
Hat jemand eine Idee?
Danke GALDO