Hallo, bei der Programmerstellung für Benedikts Display gibt es noch so einige offene Fragen, machbar ist vieles, nur was ist sinnvoll? Ich möchte gern scrollenden Text haben wie auf dem PC, des weiteren soll so wenig rechenzeit wie möglich entstehen, d.h. wiederkehrende Aufgaben sollen nur dann erledigt werden wenn etwas zu tun ist. Vorstellung: char Buffer[40][20] beeinhaltet meinen internen Zeichenpuffer. Direktadressierung ohne Scrollen sprintf(Buffer[zeile++][spalte},"...... sprintf(Buffer[zeile++][spalte},"...... sprintf(Buffer[zeile++][spalte},"...... ... Display_Write(); schreibe ich da rein, meist wird spalte = 0 sein aber vielleicht nicht immer, wenn ich Texte in zwei Spalten haben will. Die Routine Display_Write(), soll folgendes machen: Über jede Zeile wird eine Checksumme erzeugt, ob diese sich verändert hat. Sie sucht auch die \0 Marke des Stringendes und erzeugt Spaces ab dort bis Zeile voll ist, damit keine Reste stehen bleiben, wenn ein String kürzer ist als der vorhergehende. Es werden nur diejenigen ganzen Zeilen komplett ans Display übertragen, die sich geändert haben. Scrollfunktion sprintf(ScrollBuffer,"Text 1......"); Display_Scroll(ScrollBuffer); sprintf(ScrollBuffer,"Text 2......"); Display_Scroll(ScrollBuffer); usw. schreibt stur Zeilen in die Matrix rein und wenn diese voll ist, wird jede Zeile eines nach oben kopiert und das Bild neu aufgebaut. sprintf nehme ich auch nur, weil mir diese den ganzen String erzeugt wie er gedruckt werden soll. Das Ganze läuft derzeit ohne ISR. Per ISR läuft nur das Abarbeiten des Uart Fifo, wenn dieser vollegschrieben wurde. Ist das gangbar oder gibt es noch pfiffigere Lösungen?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.