Als erstes brauchst du einen Treiber für das verwendete Display.
Dieser Treiber sollte mindestens folgende Funktionen zur Verfügung
stellen:
- Display komplett löschen
- Cursor an eine bestimmte Position setzen
- An der gesetzten Position ein bestimmtes Zeichen anzeigen
So einen Treiber gibt es bereits für viele gängige Displays in der
Codesammlung hier im Forum. Wenn es keinen für dein Display gibt, musst
du ihn selbst schreiben.
Dann schreibst du eine Funktion, die Zeichenketten an eine bestimmte
Position am Display schreiben kann (unter der Verwendung der gegebenen
Treiberfunktionen). Dieser Funktion übergibt man den Text üblicherweise
als Pointer auf ein Array. Dieses Array (in dem der Text steht) kann
entweder im Programmspeicher oder im Arbeitsspeicher liegen. Verwendet
man einen AVR als Controller, dann ist das für die Funktion ein
wichtiger Unterschied.
In den Programmspeicher legt man Texte, die sich im laufenden Betrieb
nicht verändern. Alles, was im laufenden Betrieb erst erzeugt wird (z.B.
Messwertausgaben), muss im Arbeitsspeicher liegen.
Der erste Schritt ist also, dass du einen Treiber besorgst oder selbst
schreibst und damit versuchst, ein einzelnes Zeichen an eine bestimmte
Position auf das Display zu schreiben.
Wenn das mal funktioniert, ist der Rest nicht mehr besonders schwierig.
Angenommen die Funktion (des Displaytreibers)
1 | writeChar (unsigned char x, unsigned char y, char ch)
|
schreibt das Zeichen ch an die Stelle x der Zeile y.
Dann sieht die Funktion zum Schreiben von Zeichenketten so aus:
1 | writeString (unsigned char x, unsigned char y, char * string)
|
2 | {
|
3 | unsigned char i = 0, j = x;
|
4 |
|
5 | while (string[i])
|
6 | {
|
7 | writeChar (j, y, string[i]);
|
8 | i++;
|
9 | j++;
|
10 | }
|
11 | }
|
Diese Funktion kann man dann so verwenden, um Text aus dem
Arbeitsspeicher (hier Array text_1) auf das Display zu schreiben (hier
Zeile 1 ganz links):
1 | char text_1[21] = "Hallo, Test...";
|
2 |
|
3 | writeString (0, 1, text_1);
|
Natürlich kann man den Inhalt der Textarrays auch zur Laufzeit erzeugen,
dazu eignen sich besonders die Funktionen
- sprintf
- itoa, ltoa usw.
Grüße,
Peter