Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: State Machine Programmieren Kategorie: Programmierung (von Manfred - 8.10.2006 14:08)
Als Antwort auf State Machine Programmieren von JanS - 8.10.2006 12:13
Ich nutze:
C-Control II Station, OSOPT V3.0
> Hallo Leute,
>
> hat jemand eine Idee, wie man die Struktur eine State Machine in der C-Control programmieren kann?
>
> Unter Standard C habe ich dies mit labels und goto realisiert. Aber goto bietet C2 ja leider nicht...
>
> Danke und GruÃ?,
>
> JanS

Unter Stabdard-C verwendet man nur in Ausnahmefällen Labels und GoTo usw. Hier wird es mit den
switch- und case-Anweisungen gemacht. In C2 gibt es das nicht, deshalb kommt man um normale
Abfragen nicht vorbei, wie das folgende Beispiel zeigt:

    // ------------------------------------
    // STATE 1
    // ------------------------------------
    if (act_state == STATE_1) {
         ...
      }
    // ------------------------------------
    // STATE 2
    // ------------------------------------
    } else if (act_state == STATE_2) {
         ...
      }
    // ------------------------------------
    // STATE 3
    // ------------------------------------
    } else if (act_state == STATE_3) {

      usw.

Wobei die Variablen STATE_1..3 eigentlich #defines sind, die es in C2 auch nicht gibt und deshalb
mit const definiert werden. Einfache Werte hier zu verwenden wäre aufgrund der leichteren
�nderbarkeit unschön.
Da es sich bei Statemachines meist um langsamere Steuerungsaufgaben handelt, ist das auch
nicht weiter schlimm. Das Ganze wird dann in die Endloscheife eines Thread gepackt und am Ende mit
einem "sleep" schlafen gelegt. Ich hoffe, daÃ? ich damit weiter geholfen habe.
GruÃ?
Manfred


    Antwort schreiben


Antworten:

Re: State Machine Programmieren (von JanS - 9.10.2006 10:20)