Datenerfassung von SPI Bus - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ) +---- Thema: Datenerfassung von SPI Bus (/Thread-Datenerfassung-von-SPI-Bus) |
Datenerfassung von SPI Bus - LazyCompany - 28.04.2016 22:29 Hallo Leute! Ich bin genau das, was viele vor mir (oder iwie fast alle außer Chuck Norris) auch waren: blutiger Anfänger und das ärgert mich Aber erst einmal Hallo an alle und ich freue mich endlich hier dabei zu sein Ich bin Student und arbeite seit fünf Wochen im Rahmen meiner Abschlussarbeit mit LabVIEW. Soviel zum Stand meiner Erkenntnis. Nun zu meinem Problem: Ich habe einen Beagle Protocol Analyzer der Firma Totalphase http://www.totalphase.com/products/beagle-i2cspi/ in mein VI eingebunden um den SPI Bus lesen zu können. Das funktioniert auch - zumindest das Lesen. Ich bekomme über den SPI Bus seriell 3000 Samples pro Sekunde von verschiedenen Kanälen (aufsteigend) rein, jede Message hat eine eigene Kanalkennung und die Daten können unterschiedlich lang sein. Ich möchte die ankommenden Daten nun in einem Array zwischenspeichern, um sie später als seperate Kanäle in einem .wav File zur Weiterverabeitung mit Audacity verwenden zu können und danach auch graphisch auszugeben. Leider habe ich keine Ahnung wie ich ein solches Array aufbauen soll damit ich für alle 3000 Samples die Daten der N-Kanäle zur Verfügung habe. Im Array soll also Stehen: (Kanal=1 Byte / Daten = 1 Byte) Kanal1-Daten-Daten-Daten-Daten Kanal2-Daten-Daten-Daten-Daten ... Kanal n-Daten-Daten-Daten-Daten Die zweite Stufe des Problems besteht darin, das die ankommenden Daten nicht immer 3000 SPS haben, sondern auch mal 1500 oder 750 - wie kann ich das dann lösen? Ich weiß zwar das ich z.Bsp. bei 1500 einfach interpoliere indem ich die Werte *2 nehme - nur an der Umsetzung in LabVIEW happert's, bzw. am WIE. Habt ihr Ideen wie ich das aufbauen kann? Das VI habe ich bisher als State-Machine aufgebaut. Ich habe heute schon ein 3-Dimensionales-Array aufgebaut - weiss aber nicht wie ich dann das Array daran hindere nach 3000 Samples aufzuhören - er zählt immer weiter bis das der Ram und scheidet und ob das so wie ich es gemacht habe überhaupt nen Sinn macht. Mein VI kommt morgen! - Das habe ich jetzt nicht parat. Über viele Anregungen, am besten in Form einer VI, freue ich mich wie auch auf meinen Lernerfolg....auf das ich in zwei bis drei Jahren diesen Post lesen möge und dabei denke: "OMG!" So long... Grüße, LazyCompany RE: Datenerfassung von SPI Bus - GerdW - 28.04.2016 22:42 Hallo Lazy, herzlich willkommen im Forum! Zitat: Ich habe heute schon ein 3-Dimensionales-Array aufgebautWarum 3D? Bei n Kanälen mit m Samples benötigst du ein 2D-Array (wenn alle Kanäle gleich viele Samples haben) oder ein 1D-Array of Cluster of 1D-Array (wenn die Kanäle unterschiedlich viele Samples haben)… Zitat:weiss aber nicht wie ich dann das Array daran hindere nach 3000 Samples aufzuhörenIndem du das Array eben nicht unbegrenzt anwachsen lässt!? Zitat:Ich weiß zwar das ich z.Bsp. bei 1500 einfach interpoliere indem ich die Werte *2 nehme - nur an der Umsetzung in LabVIEW happert's, bzw. am WIE.LabVIEW hat auch Interpolationsfunktionen… Es wird wohl besser sein, wenn du mal dein VI anhängst! RE: Datenerfassung von SPI Bus - LazyCompany - 29.04.2016 07:41 Guten Morgen! Anbei mal mein VI. Bitte nicht so arg wundern über Sinnlosigkeit, ich bin noch ein Anfänger. Gedacht war das ganze so: Ich initialiesiere meine State Machine und Öffne mein .wav File zum Beschreiben, lese die Daten ein und speichere sie zwischen, speichere sie dann ab und stelle sie dar (Kanal kann optional ausgewählt werden). Die leeren Zustände sind als Platzhalter zu verstehen, einen Write to .wav File hatte ich, habe ihn aber derzeit mal aussen vor, da dass Handling und das Zwischenspeichern der Daten erst einmal Vorrang hat. Gruß, Lazy RE: Datenerfassung von SPI Bus - LazyCompany - 29.04.2016 09:48 Update: Habe gerade mit einem alten Azubikollegen gesprochen, selber langjähriger Anwender von LabVIEW und Softwareentwickler - Danke hier nochmal! Habe ihm mein Problem geschildert und seine Antwort war: FIFO Werde also nun nochmal als FIFO aufbauen - Meine Probleme werden deswegen nicht weniger oO |