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

RS 232 auslesen, Abtastraten sehr langsam, wie Skript beende

 

lonelydriver
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 09.12.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2014, 16:19     Titel: RS 232 auslesen, Abtastraten sehr langsam, wie Skript beende
  Antworten mit Zitat      
Hallo,
ich lese einen sensor über die serielle schnittstelle aus.
die auf dem Com-Port ankommenden Daten lese ich mittels den untenstehenden Codes aus, sodass die TAbelle in ein.txt. gespeichert wird.
Das funktioniert soweit auch gut.
Wenn ich jedoch das USB to serial KAbel einmal am Rechner an
einen anderen USB-Anschluss reinstecke, muss ich immer erst vorher im Geräte-Manager schauen, welchem COM-Port das nun entspricht. KAnn man den serial(COMXY) Befehl in der Hinsicht verallgemeinern, dass MATLAB den Sensor selbsttätig erkennt?
Eigentlich sollte der Sensor mit ca 8Hz abtasten, über eine Stoppuhr im Handy und die Anzahl der der Messwerte (h) komme ich aber leider nur auf ca 4Hz.
Würde hier ein echtes serielles Kabel (Anschluss am Rechner habe ich) Besserung bringen?
Wenn ich die Messung beenden will, gelingt mir das leider nur
über das Schließen(Abwürgen) von MATLAB. Die Befehler fclose(´all´) bringen nix.
Zu guter letzt, wie kann ich in dem untenstehenden Skript sagen,
dass es nur Beisßpielsweise 1800s auseführt werden soll?

Vielen Dank für die Beantwortung der Fragen Very Happy !



Code:
if ~isempty(instrfind)
    fclose(instrfind)
end
 
ser=serial('COM24');
disp('Serialobjekt erzeugt');
set(ser,'BaudRate',19200);
set(ser,'DataBits',8);
set(ser,'Parity','none');
set(ser,'StopBits',1);
set(ser,'ReadAsyncMode','continuous');
set(ser,'Terminator','CR/LF');
 
fopen(ser);
disp('Serialobjekt geöffnet')
 
filename = sprintf('Log%s.txt',datestr(now,30));
 
fileID = fopen(filename,'wt');
 
while (1) %dauerschleife
    fwrite(ser, ['14:14:14' char(13)]);
    disp(fgetl(ser))
 
fprintf(fileID,fgetl(ser));
fprintf(fileID,'\n');
end
fclose(fileID);
fclose(ser);
% fclose('all');fclose(ser);


h 300, 200, 100, 0
#f 9000, 10000, 18922, 18974
# ----------------------------------
# count f[kHz] h[mm]
18918, 581, 1, +101
18918, 581, 1, +101
18921, 581, 1, +101
18920, 581, 1, +101
18917, 581, 1, +101
18917, 581, 1, +101
18921, 581, 1, +101
18921, 581, 1, +101
18916, 581, 1, +101
18921, 581, 1, +101
_________________

Wer nicht wagt, der nicht gewinnt!
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 - 2025 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.