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.