WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

mit Button in GUI Timer in m-file starten

 

Xeno
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2010, 08:58     Titel: mit Button in GUI Timer in m-file starten
  Antworten mit Zitat      
Hallo,
ich sitze vor folgendem Problem.
Ich habe eine GUI, dort gibt es einen START und einen STOP Button.
Wenn ich der START Button gedrückt wird, wird ein m-file ausgeführt um Messdaten zu erfassen. Das funktioniert soweit problemlos. Da ich aber in dem Messprogramm die while-Schleife zur Datenaufnahme in einen Timer ändern will, möchte ich gern mit Betätigen des START-Buttons, das m-file ausführen und den darin enthaltenen Timer starten. Allerdings weiß ich nicht wo ich den Timer definieren soll und wie ich es hinbekomme in der GUI den Timer starten zu können. Vielleicht hat da jemand einen hilfreichen Tipp für mich.
Vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen


josekamara
Forum-Meister

Forum-Meister


Beiträge: 529
Anmeldedatum: 26.04.08
Wohnort: München
Version: ---
     Beitrag Verfasst am: 11.05.2010, 09:10     Titel:
  Antworten mit Zitat      
Hallo,

Du kannst den Profiler benutzen oder den CPU Zeit ausrechnen.

z.B:
Code:


%Profiler
Profile on


%tic toc
tic
operations
toc

%CPU Time
t = cputime
operations
e = cputime-t
 


Um die Rechenzeit festzustellen würde ich lieber den Profiler verwenden, weil es genau zeigt, wo es am längsten gedauert hat.

Gruß

Jose
_________________

Simulation
Private Nachricht senden Benutzer-Profile anzeigen
 
Xeno
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2010, 09:15     Titel:
  Antworten mit Zitat      
ich möchte ja keine Rechenzeit feststellen.
Mir gehts es nur darum, wie ich in einer GUI durch Betätigen eines Buttons einen Timer in einer zuvor geladenen m-File starte.
Private Nachricht senden Benutzer-Profile anzeigen
 
josekamara
Forum-Meister

Forum-Meister


Beiträge: 529
Anmeldedatum: 26.04.08
Wohnort: München
Version: ---
     Beitrag Verfasst am: 11.05.2010, 09:27     Titel:
  Antworten mit Zitat      
Ich würde den Timer mit der GUI definieren und natürlich in handles speichern um es wieder zu rufen.
Sobald dann der Button gedrückt wird, kannst du z.B mit diesem Befehl den Timer starten:
Code:

start(handles.Timer)
 


Ich hoffe ich habe Deine Frage jetzt richtig verstanden.

Gruß

Jose
_________________

Simulation
Private Nachricht senden Benutzer-Profile anzeigen
 
Xeno
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2010, 09:34     Titel:
  Antworten mit Zitat      
ja so habe ich mir das auch gedacht, allerdings habe ich ein weiteres Problem. In der geladenen m-File wird zu Beginn die Kommunikation zum Messgerät konfiguriert, im weiteren Verlauf dieser m-File soll dann die Messfunktion selbst über den Timer gestartet werden.
Setze ich den Timer in die GUI und lasse ihn hier periodisch ausführen, wird auch jedesmal meine Datenverbindung zum Messgerät neukonfiguriert, was ich aber nicht will. Lege ich die Konfiguration und Messfunktuion in unterschiedliche m-files ab, und lade nur einmal Konfiguratuion und periodisch die Messfunktion, kenn meine Messfunktion die Verbindung zum Messgerät nicht.
Deswegen wollte ich gerne über den Button das m-file laden und dann eine Sekunde später den Timer starten, der in der gleichen m-file die Messfunktion ausführt.
Vielen Dank schonmal für dein Bemühen, hätte das wohl gleich ausführlich beschreiben sollen!
Private Nachricht senden Benutzer-Profile anzeigen
 
Xeno
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2010, 10:51     Titel:
  Antworten mit Zitat      
ich habe mein Problem mal auf ein ganz einfaches heruntergebrochen.
Hier habe ich eine GUI mit 2 Buttons, für START und STOP.
Im Callback des Start-Buttons möchte ich das m-file "Routine" laden und nach einer kurzen Pause mit einem Timer die Funktion "Text2" im m-file "Routine" ausführen. Hier mal der Code:
GUI:
Code:

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
routine;
pause(0.1);
t = timer('TimerFcn', @text1);
start(t);
 

und hier das m-file "Routine":
Code:

function routine
disp('Routine');
end

function[]= text1
disp('Text1');
end
 

die Frage ist nun, wie ich die Funktion text1 in dem Timer in der GUI aufrufe!
Private Nachricht senden Benutzer-Profile anzeigen
 
josekamara
Forum-Meister

Forum-Meister


Beiträge: 529
Anmeldedatum: 26.04.08
Wohnort: München
Version: ---
     Beitrag Verfasst am: 11.05.2010, 12:18     Titel:
  Antworten mit Zitat      
Hallo,

definiere dieFunktion text1 als Startfunktion.


Code:

t = timer('StartFcn', @text1);

 


Gruß

Jose
_________________

Simulation
Private Nachricht senden Benutzer-Profile anzeigen
 
Xeno
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2010, 17:40     Titel:
  Antworten mit Zitat      
woher weiß der Timer in der GUI, dass es in der m-file "Routine" die Funktion "text1" gibt?
Private Nachricht senden Benutzer-Profile anzeigen
 
josekamara
Forum-Meister

Forum-Meister


Beiträge: 529
Anmeldedatum: 26.04.08
Wohnort: München
Version: ---
     Beitrag Verfasst am: 12.05.2010, 08:43     Titel:
  Antworten mit Zitat      
Ich verstehe Deine Frage nicht. Dietext1 Funktion wird doch definiert.
Wieso soll die GUI sie dann nicht erkennen?!
_________________

Simulation
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 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.