Ringbuffer aus FIFO-Artikel

OP #1725259
Lesenswert?

Moin,

Ich habe nur eine kleine Frage:
Ich versuche gerade, das Codebeispiel des ringbuffers aus diesem 
artikel:

http://www.mikrocontroller.net/articles/FIFO

zum Laufen zu bekommen. Das schreiben in den Ringbuffer läuft soweit 
gut, ich kann auch auslesen, ob der Buffer voll ist oder nicht.

Jedoch kriege ich die Daten nicht mehr aus dem Buffer raus.
Sehe ich das Falsch, oder ist die Funktion BufferOut nicht dafür 
ausgelegt?!

kann ich in meiner main nicht einfach schreiben:
1
data = BufferOut(0x01)  // 0x01 = Leseadresse

Was verstehe ich das falsch?



Greez Jey
Gast #1725270
Lesenswert?

Dann schau Dir mal die Funktion BufferOut() genauer an.
1
unsigned char data;
2
unsigned char result;
3

4
result = BufferOut(&data)

Der Rückgabewert der Funktion sind nicht die Daten, sondern ob Dein 
Zugriff geklappt hat. Im Übergabeargument steht die Zieladresse, wohin 
Deine zu lesenden Daten hin sollen.
OP #1725296
Lesenswert?

also wenn ich das richtig verstehe:
1
status = BufferOut(&data);

liegt in der Variable status nacher die information, ob das geklapt hat 
oder nicht, und in data liegt dann der Wert?

Ich habe das falsch verstanden, da ich vom EEprom gewohnt war, dass man 
eine "Speicheradresse" angeben kann. Hier wird einfach immer nur der 
hinterste Wert ausgelesen, richtig?


Mfg Jey

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren