Verfasst am: 26.03.2012, 21:28
Titel: Probleme mit Timer
Hallo,
ich will Matlab dazu bringen in einem bestimmten Zeitraster eine vertikale Linie zu zeichnen und dabei die vorherige zu löschen (eine Art Zeitanzeiger im plot soll so entstehen). Ich habe es mit timer versucht, es bislang aber noch nicht zum laufen gebracht.
% Löschen der letzten Linie: ifexist('Linie')
x = get(Linie,'XData');
ztctr = 1 + fix((Anfangszeit-x(1))/Zeitraster); % Anzahl bereits gezeichneter Linien delete(Linie);
else
ztctr = 1;
end
% Erstellen der neuen Linie:
linie = line([ztctr*Zeitraster,ztctr*Zeitraster],Y,'Color','k');
drawnow;
Damit die benötigten Variablen auch in dieser Funktion gebraucht werden können, habe ich sie (die Variablen) global definiert. Ist nicht die beste Methode aber wusste mir nicht besser zu helfen.
Verfasst am: 27.03.2012, 08:23
Titel: Re: Probleme mit Timer
Hallo de_ralle,
Die Callback-Funktion des Timers wird wie alle anderen Callbacks auch mit zwei Inputs aufgerufen, nämlich dem Handle des Timers und dem EventData struct. Schaue Dir mal die Beispiele in "doc timer" an.
okay,ich habe mich jetzt nochmal durch Dokumentation und Internet gewühlt und das Ding läuft zum Teil. Hatte nicht verstanden,dass Handle und EventData Struct vom timer nochmal in die Callback Function am Anfang hineingehören. Um meine Unterfunktion leicht allgemeiner zu halten habe ich sie daher verschachtelt.
Ein Hauptproblem bleibt dennoch:
wie ist es möglich eine von der Timer Callback Function erstellte Variable immer wieder durch die gleiche Callback Function zu überschreiben? In diesem Fall wäre das "linie".
Beim Testen gibt Matlab "Invalid or deleted object." aus. Stimmt ja auch, "linie" wurde beim ersten Aufrufen gelöscht, und eine neue erstellt welche dann nicht übergeben wird. Ist das überhaupt möglich?
Danke schonmal!
Code:
function fig = sndplay(Zeit, Signal, Zeitraster, Messtastfrequenz)
ja genau, das ist die Lösung. echt besser die Linie zu ändern ohne sie zu löschen
vielen Dank!
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
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.