|
Haselnuss |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.04.2008, 14:00
Titel: Timer programmieren
|
|
Hallo,
ich möchte mit einem Timer Daten Auslesen. Dazu habe ich den Timer wie folgt prgrammiert
Tim = timer('TimerFcn',@DatenLesen,'TimerFcn',@DatenSchreiben 'Period', delta_t ,'TaskToExecute', Trigger);
Die Funktionen sind M-Files und sehen wie folgt aus
function [out] = DatenLesen
out = getvalue(di0);
end
UND
function [B,b] = DatenSchreiben (out)
@Versuchsstand;
b=get(timer,'AveragePeriod');
B(b)=out;
end
die Funktionen ruft er allerdings gar nicht auf. Kann mir jemand weiterhelfe
Besten Dank und Grüße.
|
|
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.04.2008, 14:41
Titel:
|
|
Das habe ich jetzt hinbekommen, allerdingds bekomme ich nun die Fehlermeldung
Too many inputarguments in DatenLesen.
Weiß jemand was ich tun muss?
Für Hilfe wäre ich wirklich dankbar.
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.029
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 03.04.2008, 14:50
Titel:
|
|
Moin,
sofern du nicht etwas vergessen hast, liegt es an dieser Zeile:
Du definierst hier einen output aber keinen Input für die Funktion!
Gruß
Alex
_________________
>> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
outsider |
Forum-Meister
|
|
Beiträge: 806
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: München
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 03.04.2008, 15:39
Titel:
|
|
wird der Timer-Callback per ein Functions Handle aufgerufen, so werden immer 2 InputParameter übergeben. Der erster ist der Timer-Handle und der zweiter EventData.
1.
Deine Functionsdeklaration sollte also stehts wie folgt ausschauen
2.
Die Output-Parameter haben keine Bedeutung, den der TimerCallback wird aus dem Objekt generiert und nicht durch Deine Funktion aufgerufen in der Du dann auf den Output wartest. Wenn Du die Daten zwischen den Callbacks austauschen willst, kannst Du das über die "UserData"-Eigenschaft des Timer-Objekts tun
mit get(hTimer,'UserData') können diese dann ausgelsen werden.
3.
diese Zeile wird Dir die Fehlermeldung über eine fehlende Variable "di0" ausgeben:
Schaue in der Dokumentation nach Timer-Beispielen und versuche diesen besser nachzuvollziehen.
MfG
|
|
|
Haselnuss |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.04.2008, 10:58
Titel:
|
|
Zunächst mal vielen Dank.
Mit
out= getvalue(di0)
lese ich meinen digitalen Eingang aus, das kann doch dann so bleiben oder?
function DatenLesen(hTimer,data)
Mit hTimer ist der Timer gemeint, ok. Aber was ist mit data gemeint, die Daten die ich lesen will, dind eigenlich meine out.
die Demos finde ich leider nicht
|
|
|
Haselnuss |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.04.2008, 13:54
Titel: aktueller Stand
|
|
Hallo noch mal,
leider bin ich noch nicht weiter.
Meine DatenLesen function sieht nun wie folgt aus
function [out] = DatenLesen (Tim)
di0 = digitalio ('dtol',0);
line1 = addline(di0 ,0 , 'in');
out=getvalue(di0);
set(Tim,'UserData',out);
end
und die Fehlermeldung lautete immer noch:
too many input arguments >> DatenLesen
Wäre schön, wenn jemand einen Ratschlag für mich hätte.
Grüße und besten Dank im Voraus.
|
|
|
|
|
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.
|
|