|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.09.2015, 21:58
Titel:
|
|
Deine Timer-Funktion ist doof definiert. Erstens muss sie zwei Eingangs-Argumente haben, zweitens ist es eine Funktion. Alle Variablen, die Du darin benutzt, sind am Ende der Funktion weg. Entweder Du deklarierst die Variablen als
persistent
oder Du machst es so, wie im Beispiel unten über die
UserData
-Eigenschaft des Timer-Objekts.
aufrufendesskript.m
test.m
|
|
|
|
|
JensMt |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.09.2015, 22:46
Titel:
|
|
das ist ja Wahnsinn. Echt spitze. Genial. Vielen Dank. So wie es aussieht habe ich den Timer grundsätzlich falsch genutzt bzw. man muss hier verstehen, dass man mit Objekten arbeitet.
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.09.2015, 22:51
Titel:
|
|
An dem Beispiel kann man auch schön sehen, dass nicht mal der timer-Aufruf wirklich pünktlich funktioniert...
|
|
|
JensMt |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.09.2015, 23:28
Titel:
|
|
Ich erhalte Verzögerungen von ca. 5ms...Was aber insgesamt nicht schlimm ist bei einer Auflösung von 1sec...
das ist der Ausschnitt meines Codes um das Messgerät abzufragen
der timer selber ist ein obj. und ich habe hier wieder ein objekt (obj1) welches dem Messgerät entspricht. über query frage ich die daten ab. Wenn ich jetzt hier den timer einbaue, wird es Schwierigkeiten da es zwei objekte sind!?
edit winkow: mal wieder code umgebung eingefügt
|
|
|
JensMt |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.09.2015, 23:29
Titel:
|
|
bei den smilies sollten eigentlich ein doppelpunkt hin. Sorry...
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.09.2015, 23:32
Titel:
|
|
Nein. Du musst nur zusehen, dass Du das Messgerät-Objekt in der Timerfunktion bekannt machst. Auch das geht z.B. über die UserData-Eigenschaft des Timer-Objekts.
Bitte benutze in Zukunft doch die Code-Umgebung. Einfach oberhalb des Text-Eingabe-Felds auf "Code" drücken.
|
|
|
JensMt |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.09.2015, 23:44
Titel:
|
|
Alles klar. Ich werde direkt am Messgerät ausprobieren. Kannst du mir noch einen Tipp geben, wie ich sowas ausser mit der Matlab Doku lernen kann? Meine Programmiervorlesung liegt jetzt 5 Jahre in der Vergangenheit. Ich sitze da schon länger dran. Als erfahrener Programmier wäre das schnell gelöst.
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.09.2015, 23:49
Titel:
|
|
Die meisten Funktionen sind eigentlich ganz wunderbar Dokumentiert. Da gibt es immer ein oder mehrere lauffähige Beispiele, die die häufigsten Anwendungsfälle zeigen. Auch bei
doc timer
ist das der Fall...
|
|
|
JensMt |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.09.2015, 23:54
Titel:
|
|
Super. Vielen Dank für die schnelle Antwort.
|
|
|
JensMt |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.09.2015, 08:51
Titel:
|
|
das ist die Funktion die vom Timer aufgerufen wird.
Ich erhalte immer wieder diese Fehlermeldung. Liegt das am fprintf? oder kennt er das Objekt1 nicht?
??? Error while evaluating TimerFcn for timer 'timer-21'
Invalid file identifier. Use fopen to generate a valid file identifier.
Vielen Dank...
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.09.2015, 08:53
Titel:
|
|
Wenn der Timer die callback-funktion aufruft, wird als erstes argument das timer-objekt übergeben.
Du versuchst also einen String in das Timer-Objekt zu schreiben, wo
fprintf
ein handle auf eine Datei erwartet (das bekommst Du mit
fopen
, willst Du aber nicht haben).
|
|
|
JensMt |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.09.2015, 09:13
Titel:
|
|
Ich verzweifel gerade an der Sache. Selbst mit der Doku von Matlab. Das Obj1 ist das Messgerät und den Timer habe ich in aufgerufen nachdem ich die Verbindung über fopen(obj1) zum Messgerät hergestellt habe. Der Timer ruft dann diese Callback funtion auf.
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.09.2015, 09:31
Titel:
|
|
Guck doch mal, was eine Funktion ist und wie sich das mit Funktionen und Variablen so verhält... Man kann in Funktionen nicht einfach die Variablen aus dem Base-Workspace benutzen, die haben immer ihren eigenen Workspace. Wenn Du Variablen in der Funktion haben willst, nennt man die Argument und müssen beim Aufruf übergeben werden. Wenn Du Variablen aus der Funktion raus haben willst, nennt man das Rückgabewert.
|
|
|
JensMt |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.09.2015, 10:15
Titel:
|
|
Aber das Problem liegt doch nicht an der Übergabe von Variablen an meine Funktion @mes. Die Ausführung von fprintf versucht auf das Objekt zuzugreifen und dies scheitert. Der Befehl 'Messen' ist dem Messgerät ja bekannt. Vllt. kannst du mir noch ein Beispielcode geben an dem ich es nachvollziehen kann? Das wäre sehr hilfreich.
|
|
|
JensMt |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.09.2015, 10:22
Titel:
|
|
so sieht mein Aufruf aus der timerfcn.
|
|
|
|
Gehe zu Seite Zurück 1, 2, 3, 4 Weiter
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|