INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

T0 Messung



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

07.03.2013, 09:53
Beitrag #11

Wall-E Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Jan 2013

2012
2010
EN



RE: T0 Messung
Die State Machine solltest Du übrigens am Besten vorher auf dem Papier mittels Zustandsdiagramm entwerfen. Ich habe da schon ganz furchtbare Dinge gesehen, bei Leuten die das erste Mal eine State Machine gebaut und gleich los geklickt haben. ;-)

Ein schönes Beispiel wie man so etwas grob macht steht in dem Artikel hier auf Mikrocontroller.net.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
07.03.2013, 09:58
Beitrag #12

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: T0 Messung
Das man sich vor dem Programmieren einen PAP (oder ähnliches) auf Papier aufmalt, setze ich immer voraus! Big Grin
Aber der Link ist wirklich gut: Auch in C verwendet man typedef enums für die State-Auswahl...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2013, 10:48
Beitrag #13

Wall-E Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Jan 2013

2012
2010
EN



RE: T0 Messung
Offtopic2
Wie jetzt? Erst denken und dann coden? Das grenzt ja schon fast an Kommunismus! ;-)

Ich habe die ganzen Einführungen zu State Machines ja auch mal gelesen und dachte dabei mehrfach "wenn ich nicht schon wüsste was ein Automat ist und wie man ihn richtig entwirft, stünde ich jetzt auf dem Schlauch". Und dann bekam ich eine "State Machine" von einem jungen Kollegen, die ich dann gleich mal weg geworfen und neu gemacht habe. Seitdem...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2013, 14:35 (Dieser Beitrag wurde zuletzt bearbeitet: 07.03.2013 14:37 von Epicon.)
Beitrag #14

Epicon Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Mar 2013

6.0
2013
EN



RE: T0 Messung
Also habe ich das richtig verstanden, dass ich quasi jedem einzelnen Case (?) dann eine eigene Funktion zuschreibe?
Und das geht über die Enums?
Und in die Cases programmier ich dann jeweils die Funktion rein, was gerade passieren soll, er läuft sie nach einander durch und läuft danach in den Rest des Programms?

Und zu den vorangehenden Posts: das ist genau das Problem. Ich habe absolut null (!!!) programmier Erfahrung und wurde hier ins kalte Wasser geworfen mit einem mega Programm, was ich dann bitte schreiben soll
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2013, 14:38 (Dieser Beitrag wurde zuletzt bearbeitet: 07.03.2013 14:39 von GerdW.)
Beitrag #15

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: T0 Messung
Hallo Epicon,

jeder Case ist ein State. Die States verwaltet man über das Enum, ist "lesbarer" als eine einfache Zahl.
Grundprinzip einer Statemachine: Nach jedem State wird entschieden, welchen State man als nächstes aufruft.

Zitat:Ich habe absolut null (!!!) programmier Erfahrung und wurde hier ins kalte Wasser geworfen mit einem mega Programm, was ich dann bitte schreiben soll
So wird ein Schuh draus: Du hast eine Aufgabe angenommen, die du auch hättest ablehnen können, obwohl du dir deiner mangelnden Vorbildung bewußt warst. Jetzt musst du halt lesen/lernen... Big Grin

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2013, 15:43
Beitrag #16

Wall-E Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Jan 2013

2012
2010
EN



RE: T0 Messung
(07.03.2013 14:35 )Epicon schrieb:  Also habe ich das richtig verstanden, dass ich quasi jedem einzelnen Case (?) dann eine eigene Funktion zuschreibe?
Und das geht über die Enums?
Und in die Cases programmier ich dann jeweils die Funktion rein, was gerade passieren soll, er läuft sie nach einander durch und läuft danach in den Rest des Programms?
Ich versuche auch mal eine Erklärung:
- In jedem Rahmen der Case-Struktur ist eine gewisse Funktionalität programmiert.
- Diese wird "angewählt", indem in einem Schieberegister ein Enum übergeben wird. Der Wert des Enum gibt an, welcher Case (= State = Zustand) jeweils ausgeführt werden soll.
- Durch das Schieberegister kann in jedem State neu entschieden werden, welcher als Nächstes aufgerufen wird.
- Initialisierung, Beenden usw. finden in eigenen Cases statt. Außerhalb der State Machine gibt es damit bei kleineren Programmen in der Regel kaum von Code.

Beispiel:
Init => Heizen bis Zieltemperatur erreicht => Messen => Neue Zieltemperatur setzen => Heizen bis Zieltemperatur erreicht => Messen => ... => Ende

Vorteil: Man sieht immer was gerade passiert, der Code ist schön übersichtlich und damit ist die Geschichte leicht zu debuggen.

(07.03.2013 14:35 )Epicon schrieb:  Und zu den vorangehenden Posts: das ist genau das Problem. Ich habe absolut null (!!!) programmier Erfahrung und wurde hier ins kalte Wasser geworfen mit einem mega Programm, was ich dann bitte schreiben soll
Wow. Das ist echt hart. Nur selber wenn mich jetzt mein Mitleid übermannt und ich mich hinsetze und Dir den ganzen Kram programmiere, hilft Dir das mal so gar nicht weiter mit Deinem Opa-LV...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
07.03.2013, 16:03
Beitrag #17

Epicon Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Mar 2013

6.0
2013
EN



RE: T0 Messung
(07.03.2013 14:38 )GerdW schrieb:  So wird ein Schuh draus: Du hast eine Aufgabe angenommen, die du auch hättest ablehnen können, obwohl du dir deiner mangelnden Vorbildung bewußt warst. Jetzt musst du halt lesen/lernen... Big Grin

Deswegen bin ich ja hier im Forum, um genau das zu tun! Und, ja das ist wohl eine schwere Aufgabe, aber die anderen Themen haben mich noch weniger interesiert und bei diesem habe ich einen Ansporn Wink

(07.03.2013 15:43 )Wall-E schrieb:  Wow. Das ist echt hart. Nur selber wenn mich jetzt mein Mitleid übermannt und ich mich hinsetze und Dir den ganzen Kram programmiere, hilft Dir das mal so gar nicht weiter mit Deinem Opa-LV...

Du könntest ja von jedem einzelnen Teil einen Screenshot machen? Big Grin

Ich werde mir später deine Beschreibung nochmal genauer durchlesen, aber ich glaube, langsam verstehe ich es.

Vielen Dank schonmal für die Antworten und wenn ich weitere Fragen habe, frag ich und hoffe auf Antworten Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2013, 23:41
Beitrag #18

Wall-E Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Jan 2013

2012
2010
EN



RE: T0 Messung
Mal eine andere Frage: Die Ansprache der Hardware hast Du im Griff? Oder ist das dann die nächste Baustelle?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.03.2013, 08:12
Beitrag #19

Epicon Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Mar 2013

6.0
2013
EN



RE: T0 Messung
(07.03.2013 23:41 )Wall-E schrieb:  Mal eine andere Frage: Die Ansprache der Hardware hast Du im Griff? Oder ist das dann die nächste Baustelle?
Geschieht über GPIB und ist kein Problem Wink (zumindest bis jetzt hab ich da alles hinbekommen)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.03.2013, 09:49
Beitrag #20

Epicon Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Mar 2013

6.0
2013
EN



RE: T0 Messung
So, ansich, sollte es jetzt passen. Allerdings ist mir nicht klar, was quasi in den zweiten Case reinsoll.
Ich muss mir das ganze doch quasi wie einen "True" und einen "False" Case vorstellen? Im "True" Case sind die verschiedenen Enums. Aber was muss in den "False" Case rein? Oder brauche ich für jeden Enum einen eigenen Case? Das hatte ich zu Beginn und da blieb das Programm immer im ersten hängen ..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: