WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

float fread

 

Vaati
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 12.02.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2018, 15:26     Titel: float fread
  Antworten mit Zitat      
Hallo,

ich probiere mich gerade mit der Ansteuerung eienr Hardware. Die Kommunikation usw passt alles soweit. Ich arbeite mit der
Code:
BytesAvailableFcnMode = 'byte'
um mir dann eine Callback Funktion aufzurufen wenn 1024Bytes vorliegen (meine Hardware sendet kontinuierlich Daten).
Innerhalb der Funktion benutze ich den Befehl fread, um Daten zu lesen. Die Daten die von meiner Hardware geschickt werden sind vom Datentyp float und immer 4 Werte. Also sollte ich pro gesendetem "Paket" 16 Bytes bekommen.
Auf MATLAB Seite lese ich folgendermaßen aus.
Code:

Buf = 256;
formatType = 'float';
bitResolution = 32;
nf = (2^bitResolution)-1;

data = (fread(obj,Buf,formatType))./nf;
 

Ich habe es so verstanden, dass die Callbackfunktion aufgerufen wird, wenn 1024 Bytes im Speicher liegen (das funktioniert eigentlich auch). Die Funktion sollte also genau diese 1024 Bytes auslesen und mir 256 float-values in meinen vektor 'data' speichern.

Leider funktioniert das aber nicht. Der Wertebereich der float-values sollte irgendwie zw. 50-1000 liegen, die Daten die ich bekomme haben aber mal e-18 und mal e+28 als Wertebereich Rolling Eyes .

Kann mir jemand weiterhelfen? Ich gehe davon aus, dass das Senden der Daten von der HW zu MATLAB passt. Meiner Meinung nach müsste der Fehler beim fread liegen, dass da irgendeine Umrechnung falsch läuft.

Freue mich über Input!
Grüße
Vaati
Private Nachricht senden Benutzer-Profile anzeigen


Vaati
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 12.02.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.09.2018, 10:10     Titel:
  Antworten mit Zitat      
Hallo,

könnte es vllt. mit der Baudrate von 115200 zusammenhängen? Weil ich sende alle ms meine Daten, ergo ist es möglich 115,2Bits/ms zu senden. Bei 4 Bytes müsste ich allerdings 128 Bits/ms senden. Kann da der Fehler liegen?

Was mich etwas davon abhält das zu glauben ist, wenn ich 3 Bytes sende (ergo 96Bits/ms) habe ich teilweise auch Probleme.

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.