Nachdem ich für den Einstieg auf ATMega eine Menge hilfreicher
Informationen hier gefunden habe (danke nochmals), möchte ich auch
einmal etwas zurückgeben.
Nach langer Suche habe ich die nötigen Informationen zur Implementierung
eines Display-Treibers für das LPH8731-3C aus einem Siemens A62
(möglicherweise auch weitere, z.B. M55) zusammenbekommen. Das Ergebnis
liegt als ATMega-C-Code in den angehängten Dateien anbei.
Im Header-File finden sich ein ASCII-Sketch des Moduls (von der
Rückseite) und Hinweise zur Pin-Belegung. Ich habe das Ganze auf einem
ATMega 328p getestet, wobei ich während der Programmierung nur mit
Software-SPI gearbeitet habe (trotz Software-SPI recht flott: 4
Cycles/Bit). Die genutzten Ports und Pins lassen sich ebenfalls im
Header-File nach Gusto ändern. Der Code benötigt nur ein Minimum an RAM
und ist aufgrund der tabellierten Initialisierung auch recht kompakt.
Die Ausrichtung des Displays ist in 90°-Schritten konfigurierbar, wobei
sich die Koordinaten immer auf die nach Ausrichtung jeweilige linke
obere Ecke beziehen.
Die API sollte selbsterklärend sein. Beispielcode zum Testen:
1 | LCD_Init();
|
2 | LCD_FillScreen( LCD_WHITE );
|
3 | LCD_Putc( 'L', 8,10,LCD_BLACK,LCD_WHITE);
|
4 | LCD_Putc( 'C',16,10,LCD_RGB(15,0,0),LCD_WHITE);
|
5 | LCD_Putc( 'D',24,10,LCD_RGB(0,15,0),LCD_WHITE);
|
Ein Beispielprojekt (Commandline, GNU-Toolchain mit klassichem Makefile,
AVRDude) mit einigen Spielereien habe ich auf meiner werbefreien HP
unter http://bax.comlab.uni-rostock.de/en/hardware/lph8731-atmega/
abgelegt.