Hallo,
ich habe in einer Firma die Aufgabe übertragen bekommen ein Display mit
einem MSP430x2xx anzusteuern. Es handelt sich um die Variante, die
keinen Display-Controller beinhaltet, aber die "größte" der 2er-Reihe.
Leider ist der µC so vorgegeben und ich muß damit leben. Nun soll ein
OLED-Display vom Typ DD-12864WE-1A von Densitron mit einem
SH1101A-Controller zum Einsatz kommen. Natürlich soll das Display vom
MSP430 angesteuert werden und zwar über eine der beiden SPIs. So weit
alles klar und auch kein Problem. Bisher habe ich im MSP430, der noch
einige andere Aufgaben bearbeitet, mit einer STATE-Machine realisiert,
so wie man es bei FPGA's in VHDL oft realisiert. Sprich jeder Interrupt,
jeder externe Einfluss, Stromsparmodi usw. wird mit Hilfe von STATEs
getriggert und dann per SELECT CASE in die entsprechende Subroutine
verzweigt. Dabei läuft der µC in einer Endlosschleife die im Prinzip
immer AktuellerStatus = NächsterStatus abarbeitet.
Erste Frage:
Ist dies auch bei µCs eine gute Art selbige zu programmieren? Bisher
finde ich es schön übersichtlich und komfortabel, aber an welche Grenzen
könnte ich (insbesondere bei MSP430) stoßen?
Jetzt zurück zum Display. Hier soll eine Abstraktionsschicht geschaffen
werden, so dass das Display frei programmierbar ist. Die Anforderungen
sind:
a) Buchstaben mit einem geeigneten Raster auf dem Display darzustellen
b) Grafische Grundfunktionen (Pixel, Linien, Rechtecke zeichnen)
c) S/W-Bitmaps an beliebigem Punkt darstellen
d) Mit Hilfe von a), b) und c) ein Menü zu gestalten wie in vielen
älteren Handys.
Zweite Frage:
Wie abstrahiere ich die Displayfunktion am besten? So das das Display
mit einer Art Scriptsprache "programmiert" werden kann. Also ich denke
da an so Befehle wie:
DRAWPIXEL(X,Y)
LINE(X1,Y1,X2,Y2)
INVERTPIXEL(X,Y)
INVERTAREA(X1,Y1,X2,Y2)
die ich in den MSP430 (über irgendeine Schnittstelle) "füttern" kann in
Form irgendwelcher selbst definierten OP-Codes.
Dritte Frage:
Packt der MSP430 das alles in akzeptabler Geschwindigkeit?
Vierte und letzte Frage:
Das Datenblatt zum Display und dazugehörigem Controller ist ja mehr als
mager. Wo gibt es zusätzliche Informationen oder sind die Sachen alle
1:1 auf andere Displays übertragbar?
Ich hoffe ihr könnt mir ein wenig helfen!
Vielen Dank schonmal an dieser Stelle.