Problem: es sollen Messwerte als Kurve auf einem LCD dargestellt werden. Das LCD hat z B. 240 Punkte auf der x-Achse. Wenn die Kurve bei x= 240 angekommen ist, dann soll der neueste Messwert bei x=240 eingetragen werden und die gesamte Kurve soll um eine Stelle nach links rücken. Meine Vorstellung: Messwerte als [Feld] im RAM ablegen. Dann alle Werte nach links schieben. Etwa so: Tabelle [240] --> Tabelle [239]; Tabelle [239]--> Tabelle [238]....... Tabelle [1] --> Tabelle [0] , Tabelle [0] --> geht verloren. Gibt es eine Möglichkeit, analog einem Schieberegister, programmtechnisch alle Werte um eine Stelle nach "links" zu verschieben? Oder löst man das Problem auf eine andere Art und Weise? MfG Wolfgang
Als FIFO. Init inIndex = 0; outIndex = 1; Einfügen: feld[inIndex} = messwert; inIndex = outIndex; outIndex += 1; if(outIndex >= FeldGroesse){ outIndex = 0; } reDisplay(outIndex); redisplay(startIndex) ... oder so..
... Dein Leseindex kann doch einfach rotieren... Du willts das Array als Ringbuffer doch u.U. auch rotierend benutzen.... Ahoi DMS
das geht einfacher, und wurde schon mal diskuttiert... Mein Vorschlag war, ein Feld (240 Einträge) zu benutzen, das entsprechend der eingehenden Messwerte gefüllt wird. Sobald ein neuer Wert eintrifft, werden die Werte an das LCD weitergeleitet (sofern es einen Speicher besitzt; ich kenne mich mit Grafik-LCDs nicht aus.). Wenn das Feld voll ist, wird es von vorne wieder vollgeschrieben. Man braucht also 2 Zeiger: einen der sich die aktuelle Schreibposition merkt und einen, der sich die akutelle Leseposition merkt. Der Lesezeiger ist dann der Startpunkt für die Datenausgabe. Das spart eine Menge Byte-Geschubse...
Einige LCD Controller bieten die Möglichtkeit das LCD horizontal zu Scrollen. Alle Pixel per Software einzeln zu verschieben ist ziemlich aufwendig.
Das LCD wird von einem T6963C gesteuert. Hab ich im Datenblatt diese Möglichkeit überlesen? MfG Wolfgang
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.