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

Timer stoppt nicht durch ausrasten den Togglebuttons

 

dotter

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.03.2011, 12:00     Titel: Timer stoppt nicht durch ausrasten den Togglebuttons
  Antworten mit Zitat      
Hallo Leute!

Versuche in programm zu schreiben, das den Timer startet wenn der Toggle-Button gedrückt ist und stoppt wenn er er ein zweites mal gedrückt wird (also ausgerastet ist).
Leider stoppt er irgendwie nicht, so das die TimerFcn immer weiter aufgerufen und durchgeführt wird!
Ist vermutlich ein ganz einfacher fehler, aber ich find ihn einfach nicht (und hilfe im Netz hab ich auch nix gefunden!)

Mein Programm:
- Habe mit Hilfe von GUIDE eine figure gebaut in der erstmal nur ein Togglebutton (name: togglebutton_taster) und ein textfeld (name: text_time_s) ist.

In die Callbackfunktion des buttons habe ich folgendes geschrieben:
Code:

function togglebutton_taster_Callback(hObject, eventdata, handles)

T=timer('Timerfcn', {@tt,handles}, 'Period', 0.1, 'ExecutionMode','fixedRate');

if get(hObject,'Value')==1    %Button gedrückt/eingerastet
    % Toggle button is pressed, take appropriate action
    start(T)
else             %Button nicht gedrückt/ausgerastet
    stop(T)
end
 



Die TimerFcn sieht folgendermaßen aus (sie plottet die durchlaufene Zeit des timers):
Code:

function tt(T,cnc,handles)
t=get(T,'TasksExecute')*get(T,'Period');
set(handles.text_time_s,'String',t)
if t==3
    msgbox('jetzt sind 3 sec um')
end
 


Mein problem ist jetzt, dass die Funktion stop(T) irgendwie nicht richtig ausgeführt wird. Wobei die Matlab schon in die else Bedingung reinspringt…

Kann mir jemand helfen???
Danke schonmal!!!


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 29.03.2011, 12:24     Titel:
  Antworten mit Zitat      
Hallo

dein Fehler liegt daran, dass du beim Betätigen der Togglebuttons, immer wieder neue Instanzen von Timer erzeugst.
Ich wurde Timer-Instanz in OpeningFcn erzeugen lassen und ihn in die Handles ablegen.
Und dann in Callback mit diesem Instanz weiterarbeiten.
Private Nachricht senden Benutzer-Profile anzeigen
 
dotter

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.03.2011, 14:02     Titel: Danke
  Antworten mit Zitat      
Voll logisch, nur ich komm mal wieder nicht drauf -.-"

DANKE dir!!!
 
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.