@Heinileini
Für die Ansteuerung brauchst du sowieso eine Umsetztabelle welche Segmente für welches Zeichen.
Da ist die Textausgabe nur eine Fleißaufgabe.
Logisch, Dieter,
die Umsetzung im Programm, das Erstellen einer Tabelle u.s.w. war gar nicht Gegenstand meines Einwandes.
Ich wollte lediglich auf die sehr beschränkten Möglichkeiten hinweisen, mit 7-Segment-Anzeigen Buchstaben gut lesbar und eindeutig unterscheidbar von anderen Zeichen, speziell von Ziffern, zu realisieren.
Benötigt man nur eine kleine Auswahl von Buchstaben/SonderZeichen, dann kann man damit Glück haben ... oder auch Pech.
Benötigt man aber das komplette Alphabet, so hat man eher Pech. Und benötigt man die Unterscheidung von Gross- UND KleinBuchstaben, dann sollte man das Vorhaben lieber aufgeben.
Deshalb wurden ja auch Anzeigen mit mehr als 7 Segmenten pro Zeichen erfunden. DarstellungsMöglichkeiten deutlich besser, aber auch nicht so überwältigend gut. Das schlechte Verhältnis der DarstellungsQualität zum Aufwand hat dafür gesorgt, dass sie sich nicht wirklich durchgesetzt haben.
Mit einer PunktMatrix ist man flexibler und kann man mit z.B. 5 Spalten und 7 Zeilen schon ganz brauchbare Ergebnisse erzielen. Und spätestens bei solchen Lösungen kommt man sehr schnell darauf, die "BitMuster" in Tabellen anzulegen.
Mit dem MAX 7219 habe ich keine Erfahrung. Habe ein DatenBlatt gefunden, wovon ich leider nicht geschafft habe, eine pdf-Version zu produzieren. Mir fehlt jetzt der Nerv, es "duchzuarbeiten".
8 Ausgänge, mit denen die anzusteuernde Stelle ausgewählt wird, weitere 8 Ausgänge, mit denen das eine der 7 Segment plus dem DezimalPunkt ausgewählt wird. Soweit so klar. Ich unterstelle bzw. kann nur hoffen, der Chip ist so "schlau", diese 16 Ausgänge unabhängig von der Taktung des TaktEingangs anzusteuern. Eine langsame Taktung darf sich nicht auf die AnzeigeSeite des Chips auswirken - die muss jederzeit schnell ablaufen, um eine qualitativ saubere Anzeige zu erreichen, da immer nur 1 der 64=8x8 "Segmente" angesteuert wird.
Eingangsseitig werden pro Stelle 16 Bit eingelesen, also 128=8x16.
Der Chip könnte so intelligent sein, die Ausgabe erst dann zu aktualisieren, wenn alle 8 Stellen im Speicher aktualisiert sind, die Anzeige also "konsistent" ist ... oder man müsste den entsprechenden ZeitPunkt der Anzeige mitteilen können.
Wenn ich es beim Überfliegen des DatenBlatts richtig aufgeschnappt habe, dann ist in den 16-Bit "DatenPaketen" die Information enthalten, auf welche AnzeigeStelle sich die jeweils übermittelte SegmentDarstellung bezieht.
Damit hätte man wahrscheinlich die Möglichkeit, seitens der SPS nur die Stellen zu aktualisieren, die ihren Inhalt aktuell verändert haben.
Will man z.B. die aktuelle Uhrzeit anzeigen (hh:mm:ss), dann müsste in 90% der Fälle nur die SekundenEinerStelle aktualisiert werden und schlimmstenfalls (einmal täglich nach 23:59:59) 6 Stellen. Die Langsamkeit der DatenÜbertragung würde sich unterschiedlich stark und zeitweise spürbar auswirken auf die "effektive" Dauer der DatenÜbertragung.
Im Fall der Anzeige einer aktuellen UhrZeit liesse sich das sogar "vorausschauend" in der SPS kompensieren.