PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ringpuffer und keine arnug wie XD !?



nover
16.12.2006, 00:26
mein Problem ist das ich einige Messwerte auf einem lcd ausgeben möchte und diese nicht bit weise übertragen möchte ( assm NOOP ) und ich keine Ahnung habe wie das mit dem Ringpuffer geht ???

kann mir vielleicht jemand helfen
danke schon im voraus

dennisstrehl
16.12.2006, 00:39
Eine genauere Erläuterung deines Vorhabens wäre ganz nützlich. So kann ich dir nur erklären wie ein Ringspeicher funktioniert:

Ich hab das mal bei einem RS232-Buffer so gemacht, dass ich einen Start- und einen Endpunkt definiert hab, und dann noch einen Lese-Pointer und einen Schreib-Pointer.
Beim schreiben muss der jwlg. Wert an die Stelle des Schreib-Pointers geschrieben werden (logisch...). Vorher muss überprüft werden, ob der Speicher nicht schon voll ist. Das kann man machen, indem man schaut, wo sich der Lese-Pointer gerade befindet. Danach wird der Schreib-Pointer halt um 1 inkrementiert und dann muss noch getestet werden, ob der Pointer über das Ende des Speicher hinausgelaufen ist. Wenn ja muss er auf den Anfang des Speichers gesetzt werden.
Beim Lesen muss erstmal getestet werden, ob's überhaupt was zu lesen gibt. Das kann wieder durch Vergleich von Schreibe- und Lesepointer erfolgen. Dann muss der Wert von der Adresse wo der Pointer hinzeigt gelesen werden und der Pointer um 1 erhöht werden. Wenn das Ende des Speichers erreicht wird muss er auch auf den Anfang gesetzt werden.

Ich kann den Code bei Interesse gerne posten, ist allerdings nicht mit allen Speichergrößen- und Adressen stable. Sollte also höchstens dazu dienen sich einen groben Überblick zu verschaffen.

Gruß,
Dennis

nover
16.12.2006, 00:48
ich möte eine 10bit adc auslesen umrechen und ausgeben. (natürlich ist auch nen bisel text bei) klapt alles bis aufs ausgeben!

dennisstrehl
16.12.2006, 00:52
Ich versteh nur nicht was der Ringpuffer da machen soll.

nover
16.12.2006, 01:05
die werte aufnehmen speichern , nach und nach auslesen senden
da das aber nicht in ein Register passt wolt ich nen ring nehmen
(pro zeichnen ein byt ) Variable die ich nicht aus dem flach hole muss ich irgendwo unter bringen.