INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

100% CPU-Auslastung, trotz Wartezeit?



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

10.09.2010, 05:33 (Dieser Beitrag wurde zuletzt bearbeitet: 10.09.2010 05:36 von Matze.)
Beitrag #13

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
100% CPU-Auslastung, trotz Wartezeit?
Guten Morgen

' schrieb:Ich dachte du schreibts mit 1khz werte rein und nicht mit 20 hz?
Sorry, habe mich falsch ausgedrückt.

Ich schreibe in den FIFO mit 1 kHz und lese über FIFO.Read immer 50 Werte auf einmal aus. D.h. es dauert 50 ms, bis der FIFO so voll ist, dass ich ihn auslesen kann.

' schrieb:verarbeiten duerfte der fifo nicht voller werden. im gegenteil... pro zyklus ca 1 leerer bis der grossteil des wartens wieder ein busy wait im dma-read ist.
Dann kommt noch die Verarbeitung der Daten dazu, die länger als 1 ms dauert und schon läuft der FIFO kontinuierlich voll.
Aber selbst wenn alle 50 ms ein Wert der FIFO um einen Wert kürzer wird, ist das zu langsam.

Wenn eine Ethernet-Kommunikation (die da integriert ist) z.B. mal 200 ms benötigt, dann habe ich keine Chance, den FIFO in kurzer Zeit wieder zu leeren.

' schrieb:anderer ansatz... timed loop mit 50ms und pro zyklus alle vorhandenen werte auf einmal auslesen? oder bist du auf exakte 50er bloecke angewiesen bzw. befuerchtest du probleme mitm memory manager?
Zuerst verwendete ich eine TimedLoop, wobei ich da auch immer nur 50 Werte verarbeitet habe. Und genau dann ginge die Timed Loop nicht.
Wenn ich alle Werte auslesen, würde das theoretisch funktionieren. Ich bin mir nur nicht sicher, ob das einen Vorteil bringt.

Ich habe mich für 50er-Blöcke entschieden, da ich so ca. weiß, wie lange die Verarbeitung der Daten braucht.
Wenn da mal 500 Werte auf einmal kommen sollten, könnte ich mir vorstellen, dass dann irgendwas deutlich langsamer wird, da die Werte z.T. in Arrays landen und die finde ich persönlich sehr langsam ab einer bestimmten Größe (auch wenn ich das Array vorher initialisiere und dann nur Werte ersetze).

Grüße

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
100% CPU-Auslastung, trotz Wartezeit? - Matze - 10.09.2010 05:33

Gehe zu: