www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik state machine v Zustandsmaschine


Autor: Stephan Schwarz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jungs


Ich bin auf der Suche, nach einer Beschreibung einer solchen.
Wie ist sowas aufgebaut und welche Aufgaben, kann ich damit erledigen?
Wäre nett, wenn jemand einen Link hat.
Im WWW finde ich zwar viele Dokumente, die den Begriff benutzen, aber
niemand erklärt den Aufbau.
Ist wahrscheinlich alles Basic Know-How, aber mir leider unbekannt.

Danke

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Zustandsmaschine (als Software) hat einfach verschiedene Zustände
und eine große Schleife mit vielen if-Abfragen, in denen steht, unter
welchen Bedingungen sie von einem Zustand in den nächsten wechseln
darf.
Der Zustand selber wird einfach in einer Variablen gespeichert.

Tank befüllen:

Zustand = Warten
do
  wenn Taste_Start = gedrückt und Tank nicht voll dann
      Wasser marsch und Zustand = befuellen.
  wenn Zustand = befuellen und Taste_Stop = gedrueckt,
      dann Zufluß abschalten und Zustand = Warten
  wenn Zustand = befuellen und Tank = voll, dann
      Zufluß abschalten und Zustand = voll.
loop


Das Ganze kann man auch noch grafisch darstellen, damit kann man schön
sehen wann was passieren darf und was nicht.

Benutzt wird das z.B. bei Steuerungen, bei Signalauswertung usw. usf.

Markus

Autor: Stephan Schwarz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Markus

Ich hatte mir das etwas komplizierter vorgestellt.
Aber ist ja auch schön, wenn mal was einfach ist.

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine professionelle Beschreibung über State-Machines inklusive
Source-Beispielen findet sich hier:

http://www.embedded.com/shared/printableArticle.jh...

Autor: Jim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Ich hatte mir das etwas komplizierter vorgestellt.
Aber ist ja auch schön, wenn mal was einfach ist."

Das ist relativ. In der Informatik wird eine Zustandsmaschine sehr wohl
formal mathematisch behandelt und dann ist das nicht mehr ganz so
trivial.
Es hängt halt davon ab, wofür Du das brauchst. Für eine
Controller-Anwendung ist das sicherlich nicht notwendig.

Autor: Achim Walther (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

man kann sowas auch in Hardware bauen. Haben wir vor 14 Jahren im
Studium noch gemacht und wurde Zustandsautomat genannt. Das Prinzip:
Mittels Flip-Flops oder anderen diskreten Speichern merkt sich die
Maschine den Zustand (als Bitset). Im Zustandsdiagramm sind die
zulässigen Übergänge definiert - diese werden mittels diskreten
Logikbausteinen geschaltet. Was dabei herauskommt lässt sich ähnlich
wie das Beispiel von Markus umgangssprachlich beschreiben:
    wenn Zustand=0100 und Eingang_x=1 und Eingang_y=0
        Wechsle in Zustand 0101

Über den Zustand kann man die Ausgänge beschalten, also z.B. eine
Anzeige oder einen Motor steuern. Seit es Mikrocontroller zu
erschwinglichen Preisen gibt, hat sich das Aufbauen mit diskreten
Logikbausteinen aber wohl erledigt...

Achim.

Autor: Uwe Nagel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der diskrete Aufbau hat sich garantiert nicht erledigt. Was meinst Du
wozu die ganzen programmierbaren Logikbausteine gut sind?
Allerdings werden für "langsame" Aufgaben heute sicher
Mikrocontroller eingesetzt, wo früher diskrete Logik oder vielleicht
ein PAL unumgänglich waren.

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist eine gute Methode, um in VHDL "Programme" auf einem FPGA zu
programmieren.

Ein gutes State-Machine-Beispiel für Mikrokontroller (AVR) ist das
Programm, das auf dem AVR-Butterfly-Board läuft. Sourcen sind frei
verfügbar.

jörn

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.