Hallo liebe FT800 Freunde, ich habe eine kurze Verständnis Frage zum FT800 bzw. FT811: Also die Anzeige von Daten bzw. Text habe ich hin bekommen. Das ist am Anfang ja auch leicht, da der cmdBuffer 0 ist (command list). Der cmdBuffer ist ein Ringspeicher: This FIFO is mapped at FT800 memory addresses 108000h (RAM_CMD) to 108FFFh (RAM_CMD + 4095) Wenn ich jetzt aber nur ein Zeichen auf dem Display hinzufügen möchte, müsste ich stets den letzten Pointer Wert des cmdBuffer wissen? Oder wird der Pointer nach jedem SWAP Befehl wieder aud 0 gesetzt ? Ich glaube nicht. When a new list is to be created, the MCU will write the commands starting from the next available location. Wenn nicht, was passiert wenn der Buffer das Ende erreicht? Wenn man zum Beispiel jede Sekunde eine Temperatur anzeigen möchte, ist der Buffer irgendwann voll und fängt von vorne an. Das riecht nach einem Problem. Könnte man nicht den Buffer immer wieder zurücksetzen? Vielen Dank für eure Hilfe. Gerhardt
>>>Wenn man zum Beispiel jede Sekunde eine Temperatur anzeigen möchte,
Dann musst Du jede Sekunde die komplette Displaylist neu hochschieben.
So mache ich es......
Gerhardt S. schrieb: > was passiert wenn der Buffer das Ende erreicht? Gerhardt S. schrieb: > Der cmdBuffer ist ein Ringspeicher: Ein Ringspeicher hat kein Ende. Ein Ring ist geschlossen. Gerhardt S. schrieb: > This FIFO is mapped at FT800 memory addresses 108000h (RAM_CMD) to > 108FFFh (RAM_CMD + 4095) Die nächste Adresse nach 108FFFh ist 108000h, ein Ring eben. MfG Klaus
Danke für die Info Dirk, aber das ist ja wirklich suboptimal. Wenn man jedesmal die komplette Command Liste erstellen muss. Aber wie machst du das mit dem Overflow in der Command-List ? Fragst du jedesmal den Pointer ab und machst ab da weiter? Was würde passiern, wenn man nur einen Text-String als Update schickt und nicht den kompletten Display Inhalt? Bin gespannt....
Hallo Gerhard, also ich habe die komplette Displaylist in eine State maschiene aufgeteilt. Bei jedem MCU Zyklus wird ein Teil der Displaylist neu in den FT800 geschrieben. Am Ende kommt dann der Exe und Swap Befehl. So wird mein Display ca. 4 mal pro Sekunde geupdated. Über einen Überlauf habe ich mir noch keine Gdanken gemacht. Wenn Du mit dem Update von nur einem Teil der DL weitergekommen bist, dann sag doch bitte hier Bescheid....
Habe zwischendurch 2 Möglichkeiten gefunden. Beide sind sehr gut hier beschrieben: FT800_Optimising screen updates http://www.ftdichip.com/Support/Documents/AppNotes/AN_340_FT800_Optimising%20screen%20updates%20with%20Macro%20and%20Append.pdf Viel Erfolg.
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.