Große Schrift fürs LCD (Version 1.2)

Von meiner LCD-Seite kennst du wahrscheinlich die große Uhr auf von meinem LCD.
Ich habe mich ein Wochenende hingesetzt und habe alle Buchstaben, Zahlen und viele Sonderzeichen für den großen Schriftsatz erstellt.

Bei diesem Modul werden leider alle benutzerdefinierbaren Zeichen verwendet. Somit kannst du keine weiteren, eigenen Zeichen definieren.
Für den Schriftsatz werdem folgende Zeichen verwendet:
Benutzerdefinierte Zeichen
Hier siehst du, dass nur die zwei letzten Zeichen aus dem ASCII-Zeichensatz stammen. Alle anderen werden mit der Funktion [Modulname].Init in den CG-RAM geschrieben. Das Display muss zuvor über das LCD-Modul initialisiert werden.

Mit der Funktion [Modulname].ParseText kannst du den Text in die großen Zeichen umwandeln. Hier kannst du auch festlegen, ob zwischen den einzelnen Zeichen eine Leerstelle eingefügt werden soll. Das brauchst du, wenn du zum Beispiel eine Uhr für ein 4x16er-Display schreibst ;)

Falls es doch mehr Text wird, der nicht auf das Display passt (4 Zeichen bei einem 4x16-Zeichen Display und 5 Zeichen bei einem 4x20-Zeichen Display,..), kannst du den Text einfach scrollen. Dabei ist es schöner, wenn du dabei nicht am Text, der aufs Display kommen soll, herumwerkelst sondern an dem, was bei [Modulname].ParseText heraus kommt. Hier ein Beispiel dazu:

Dim myText As BigChar

Private Sub Text1_Change()
myText = [Modulname].ParseText(Text1.Text & " ", True)
[Modulname].Writetext myText
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
On Error Resume Next
For x = 1 To 4
myText.Row(x) = Mid(myText.Row(x), 2, Len(myText.Row(x)) - 1) & Mid(myText.Row(x), 1, 1)
Next
[Modulname].WriteText myText
End Sub

Der Nachteil an dieser Routine ist, dass bei jedem Ändern des Textes von Text1 das scrollen immer neu anfängt, was bei längeren Texten, die sich während dem scrollen ändern zu Problemen führen kann. Besser wäre es, wenn du den Wert für die Verschiebung in eine Variable nimmst und anhand von dieser den Text verschieben lässt.

Wenn der Text verarbeitet wurde, wird er über [Modulname].Writetext ausgegeben.

Falls du weitere Zeichen möchtest, kannst du sie ziemlich einfach in [Modulname].Parsetext einbauen:

Die Definition kommt zwischen "Select Case [...]" und "End Select" und sieht folgendermaßen aus:

Case <ASCII-Code des Zeichen>: .Row(1) = "<Zeile1>": .Row(2) = "<Zeile2>": .Row(3) = "<Zeile3>": .Row(4) = "<Zeile4>"

Die Nummern für die Zeichen kannst du aus dem Bild von oben entnehmen.
Achtung: Die Länge der Zeichendefinitionen muss in allen Zeilen gleich sein, da sonst der gesamte Text verschoben wird.

Download:
Modul: Bigchars (Code-Highlighting, Bigchars.bas befindet sich im Beispiel)
Programmbeispiel: Big-Beispiel (VB6)