|
|
Timer in GUI- Fehler b. Definition der TimerFunc |
|
Marfiosie |
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 18.11.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.01.2017, 21:14
Titel: Timer in GUI- Fehler b. Definition der TimerFunc
|
|
Hallo,
ich dachte eigentlich ich wäre mit meinem kleinen Programm schon so gut wie fertig, aber irgendwie krieg ich die Verwendung des Timers nicht gebacken, vielleicht weiß jemand Rat.
Hintergrund:
In meiner GUI möchte ich regelmäßig Daten zwischen meinem in MATLAB erstellten Controll Panal und einem Microcontroller synchronisieren. Die Funtkionen dazu habe ich bereits fertig und getestet- nur deren regelmäßiger Aufruf macht mir Probleme:
Problem:
Anscheinend kann, evtl. syntaxbedingt, MATLAB meinen Timer Callback nicht finden:
Hier mal der aufs wesentliche reduzierte Code:
Figure createfcn:
Gesartet wird der Timer erst später, wenn die Serielle Verbindung erfolgreich hergestellt wurde. Kann mir jemand einen Tip geben woran es hängt. Die Timer sind für mich noch recht neu und irgendwie komm ich nicht drauf.
DANKE und viele Grüße
|
|
|
|
|
Marfiosie |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 18.11.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.01.2017, 21:35
Titel:
|
|
Okay, ich bin nun selber auf den Fehler gestoßen. Als Callback muss die TimerFcn lauten:
EDIT:
Leider hat sich gleich ein neues Problem ergeben : Nach dem Start des Timers wird die gewünschte Funktion einmal wie erwartet aufgerufen. Nachdem der Intervall verstrichen ist und der Aufruf zum zweiten mal stattfinden sollte erscheint folgende Fehlermeldung:
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 25.01.2017, 10:36
Titel:
|
|
Hallo Marfiosie,
Wenn Du den Callback so definierst:
(Hier sind die geschweiften Klammern überflüssig)
muss die Funktions-Definition so aussehen:
Für
ist dies erforderlich:
Die "handles" kannst Du aber besser innerhalb der Funktion per
bekommen.
Es ist verblüffend, dass der Code bei dieser Meldung einmal läuft. Hast Du ihn vielleicht während des Programm-Ablaufs modifiziert?
Öffne den Code des Timer-Callbacks und suche im Editor nach Warnmeldungen.
Gruß, Jan
|
|
|
Marfiosie |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 18.11.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.01.2017, 12:27
Titel:
|
|
|
|
|
Zitat: |
Die "handles" kannst Du aber besser innerhalb der Funktion per
Code:
handles = guidata(ObjectH)
Funktion ohne Link?
bekommen. |
Ah Danke, das kannte ich noch nicht. Supi. Ein Fehhler den ich gemacht habe, war wohl den Timer in der ceatefunction der GUI zu erstellen, wo er irgendwie noch nicht so richtig an die handles rankommt. Hab ihn jetzt "ausgesourct"
Mein Controll Panal funktioniert jetzt und ich bekomme Live- Daten rein und kann auch Prozesswerte an den Microcontroller übergeben. Leider speielt mir die serielle Kommunikation einen blöden Streich:
Solange ich mich mit dem Arduino verbinde und nur in der einen Richtung Daten empfange läuft alles bestens. Wenn ich allerdings in der anderen Richtung einmal ein serielles Signal ('k40') sende, wird dieses zwar noch empfangen und richtig interpretiert, aber die ganze folgende Kommunikation driftet extrem auseinander(als würde man youtube mit 56k Modem streamen :/ ).
Jede Sekunde sendet Matlab ein Befehl zum Arduino, was darauf Daten in Form einer 5x5 Matrix sendet, welche Matlab wiederum mit einem anderen Befehl bestätigt. Hab das Delay des Arduino schon varriert und die Frequenz des Timers in Matlab auch, aber das Problem besteht noch immer. Ist vielleicht jemand schon mal was ähnliches passiert?
|
|
|
|
|
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.
|
|