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 | ||
| ||
> 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) |