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 gesteuertes Ablaufprogramm möglich?

 

power
Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 25.10.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.12.2007, 12:36     Titel: Timer gesteuertes Ablaufprogramm möglich?
  Antworten mit Zitat      
Hey,

ich möchte in Matlab 3 Funktionen abhängig von verschiedenen Delay Zeiten ausführen lassen.

1) Funktion1 nach t=5s
warte 10s (Commandline darf nicht gesperrt sein, pause geht nicht)
2)Funktion2
warte 5s
3)Funktion3
warte 5s
4)zurück zu Funktion2
warte 5s
5)Funktion3
warte 5s
6)zurück zu Funktion2

usw...

Also Funktion1 einmalig starten und danach zeitabhängig Funktion2 und Funktion 3 in einer Schleife.

Ist diese Programmablaufsteuerung mit timer möglich?
Gibt es die Möglichkeit das als Zeit-Automat laufen zu lassen?

Danke schonmal.
Private Nachricht senden Benutzer-Profile anzeigen


power
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 25.10.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.12.2007, 12:06     Titel:
  Antworten mit Zitat      
So, eine Verschachtelung von 3 Timern hat mich zum Ziel geführt. Das funktioniert soweit. Falls ihr noch andere Ideen habt, nur her damit. Man lernt ja nie aus Smile.
Private Nachricht senden Benutzer-Profile anzeigen
 
outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 27.12.2007, 21:06     Titel:
  Antworten mit Zitat      
ich gehe davon aus, dass die aufzurufende Programme eine Schleife beinhalten, wobei die die Anzahl der ausgeführten Schleifen abhängig von der Zeit ist...

Ich sehe zwei Möglichkeiten zur Lösung der Aufgabe.

1.
Jeder Loop wird vom Timer aus gestartet (über TimerFcn). D.h. jeder Schleifendurchgang wird nicht innerhalb von FOR-Kommandos initiriert sondern vom Timer aus und solange bis der Timer läuft (kann man ja von vorne rein einstellen)

2.
Funktion mit FOR-Schleife wird gestartet und gleichzeitig eine "globale" Flag-Variable zB mit 0 initialisiert. Der Wert dieser Variable wird in der Schleife ständig überprüft (als Abbruchkriterium). Von aussen wird nach einer bestimmten Zeit (zb. über Timer nach 10s) wird diese Variable auf 1 gesetzt...


Falls die Frage auf das Echtzeitverhalten hinausläuft musst Du aufpassen. Die Zeitgenauigkeit ist abhängig von der Zeit, die jeder Loop im einzelnen braucht. Falls das kein Problem darf man trotzdem nicht vergessen, das Windows XP (und auch Linux) keine Echtzeitbetriebsysteme sind...


MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
power
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 25.10.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.05.2008, 13:13     Titel:
  Antworten mit Zitat      
Hi,

nein hier geht es nicht um ein Echtzeitproblem Smile

Mein Programmcode beinhaltet 2 timer:
timer_flushprocess.m:
Code:


        t1=timer('TimerFcn', 'timer_record', 'StartDelay', t_flush);
        start(t1);

 

timer_record.m:
Code:


        t2=timer('TimerFcn', 'timer_flushprocess', 'StartDelay', t_rec);
        start(t2);

 

Am Anfang rufe ich timer_flushprocess.m auf. In dieser Datei startet der timer t1 automatisch, d.h. nach t_flush soll die Funktion timer_record.m aufgerufen werden. Diese lädt nach t_rec wiederum die Funktion timer_flushprocess usw... Es bildet sich eine Schleife.
Dieses Prinzip funktioniert bis zu einem gewissen Zeitpunkt wunderbar.
Das Problem ist, dass immer wieder neue timer generiert werde, statt nur 2 zu benutzen und immer wieder zu starten/stoppen.
Gibts da eine Lösung?
Zweites eigentliches Problem: Nach einer ungewissen Zeit (mal eine Stunde, mal 30 min) kann timer_flushprocess nicht mehr aufgerufen werden.
Fehlermeldung:
"??? Error while evaluating TimerFcn for timer 'timer-3'

Error using ==> evalin
Undefined function or variable 'timer_flushprocess'."

Hat jemand eine Idee?
Danke schonmal fürs Lesen.
Private Nachricht senden Benutzer-Profile anzeigen
 
power
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 25.10.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2008, 14:12     Titel:
  Antworten mit Zitat      
hat sich erledigt
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 - 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.