Hallo, ich habe eine Frage und zwar steuere ich über eine serielle
Schnittstelle ein Gerät an. Dabei sende ich einen Befehl aus und erhalte
eine Antwort zurück. Nun will ich aber diesen Befehls öfters
hintereinander senden (z.b:5 mal) also in einer for schleife aber dies
gelingt mir nicht so richtig, ich habe es folgendermassen probiert aber
es klappt nicht.
fopen(s);
disp('Serialobjekt geöffnet')
% Scan ablesen
for i=1:5
fprintf(s, '%R1Q,20146:')
daten(1,i)=fscanf(s(i))
end
fclose(s)
delete(s)
clear s
Kann mir da vielleicht jemand helfen vielen Dank
was klappt nicht, und wie sind die symptome? klappt der erste leseversuch, aber dann nichts weiter? was soll fscanf(s(i)) überhaupt bezwecken? gibt es fehlermeldungen? http://www.catb.org/esr/faqs/smart-questions.html
Hey vielen Dank für deine Antwort, es gibt eine Fehlermeldung weiss aber jetrzt nicht mehr genau wie die aussah da ich das Gerät zur Zeit nicht zur Verfügung habe. Mit fscanf(s) erhalte ich die Antwort des Gerätes wahrscheinlicht ist das fscanf(s(i)) falsch aber ich weiss nicht wie man es anders schreiben soll damit man 5 antworten hintereinander erhält. Vielen Dank MFG Hans
> aber ich weiss nicht wie man >es anders schreiben soll damit man 5 antworten hintereinander einfach genau gleich wie bei 1 mal (das 5 malige erledigt ja die for schleife schon)
Ja genau aber mit der for schleife funktioniert es nicht so wie ich es ausprobiert habe
Hallo, heute stand mir das Instrument wieder zur Verfügung und die Fehlermeldung die erscheint ist folgende: Subscripted assignment dimension mismatch. und zwar an der Stelle Code: daten(1,i)=fscanf(s) Es geht darum das der Befehl fprintf fünf mal gesendet werden soll, dies habe ich aber nicht herausfinden können. Das Problem ist das ich den fprintf und fscanf nicht in die Vorschleife packen kann, damit der Befehl öffters gesendet wird. Ich hoffe es kann mir jemand weiterhelfen MFG Hans P.
Hans P. schrieb: > Es geht darum das der Befehl fprintf fünf mal gesendet werden soll, dies > habe ich aber nicht herausfinden können. Das Problem ist das ich den > fprintf und fscanf nicht in die Vorschleife packen kann, damit der > Befehl öffters gesendet wird. Lies Dir das nochmal durch. Und nochmal. Meinst Du wirklich, daß irgendjemand anderes versteht, was Dein Problem ist, von Deiner offensichtlichen Unfähigkeit abgesehen, das Problem zu schildern?
Hallo es ist halt etwas kompliziert zu Beschreiben, ich versuchs
nochmal:
s = serial('COM4');
set(s,'Baudrate',9600,'Parity','none','Databits',8,'Terminator','CR/LF',
1);
fopen(s);
Ich sende einen Code an ein Messgerät mit fprintf(s,'%R1Q,20146:') und
lese mir die Daten mit fscanf(s)
So funktionniert das Programm einwandfrei und ich erhalte meine Daten.
Das Problem liegt nun darin, dass ich den Befehl
fprintf(s,'%R1Q,20146:') nun öfters hintereinander an das Messgerät
senden möchte. Dies habe ich mit einer for schleife folgendermassen
probiert:
for i=1:3
fprintf(s,'%R1Q,29035:');
daten(i,1)=fscanf(s);
end
dort endsteht die Fehlermeldung: Subscripted assignment dimension
mismatch.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.