Forum: Mikrocontroller und Digitale Elektronik FreeRTOS: Allgemeine Frage zu Queues


von Klaus (Gast)


Lesenswert?

Hallo!

Ich steck grad bei einem kleinen Problem mit den queues im FreeRTOS. Ich 
habe eine Schlange, in die Abtastwerte aus dem ADC reingeschrieben und 
in einer anderen Task wieder ausgelesen werden (256 Samples). Mein 
Problem ist, dass ich zwar alle 256 Samples erfolgreich empfange, danach 
aber keine neuen Samples in den FIFO eingefügt werden können, da ich 
dann immer den QueueFull Fehler erhalte.

Wird durch das Auslesen aus einer Queue nicht automatisch wieder ein 
Platz in dieser frei?

von Karl H. (kbuchegg)


Lesenswert?

Kommt drauf an.
Laut Doku gibt es 2 Funktionen dafür

Receive      entfernt das Objekt aus der Queue
Peek         entfernt das Objekt nicht aus der Queue

http://www.freertos.org/a00018.html

von Klaus (Gast)


Lesenswert?

Hmm seltsam.. Ich benutze in meiner Task auch

xQueueReceive(...)

und trotzdem wird kein Platz frei.

von holger (Gast)


Lesenswert?

>xQueueReceive(...)
>
>und trotzdem wird kein Platz frei.

Wie sehen die beiden Tasks aus? Wenn die Queue schneller
gefüllt als geleert wird, dann gibt es auch irgendwann
QueueFull Fehler.

von Klaus (Gast)


Lesenswert?

Ja ich weiss, aber ich deaktiviere die ADCs nach 256 abgeholten Werten 
und aktiviere diese erst wieder, wenn die beiden Queues komplett 
ausgelesen und die Daten verarbeitet wurden.
Ich überprüfe grade erstmal nochmal genau die Indizes meiner Vektoren 
etc. Wahrscheinlich habe ich doch irgendwo einen anderen Fehler. Ich 
melde mich später nochmal.

von Klaus (Gast)


Lesenswert?

Hat sich erledigt ... war mein Fehler ;-)

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
Noch kein Account? Hier anmelden.