Forum: Mikrocontroller und Digitale Elektronik Problem mit TouchLCD+UART+State Machine


von Andreas P. (sack-c-fix)


Lesenswert?

Hallo,

stehe gerade auf der Leitung wie ich am sinnvollsten eine State Machine 
programmiere in der ich den UART und gleichzeitig ein LCD mit Touch 
verwenden kann.
Das Ganze soll eine GSM-Alarmanlage werden, sprich, wenn ein Sensor 
auslöst wird der Controller (MEGA128) geweckt und schickt über ein 
GSM-Modem eine Nachricht. "Gleichzeitig" soll auf einem Display der 
Status angezeigt und auch Änderungen vorgenommen werden.
Jeder Teil für sich funktioniert perfekt:
 - Per ISR auf empfangene Daten am UART warten und schicken.
 - Per ISR aus IDLE aufwachen und in State Machine Zustand wechseln
 - Mit Timer gewisse Zeit warten und wieder schlafen legen
 - Display mit Touch auslesen und ansteuern(dabei auch was per UART 
senden), mehrere Fenster durchschalten.

Nur weiß ich momentan nicht wie ich das Alles am besten kombiniere, 
sprich wenn ich in meiner State Machine in einem Zustand warte auf den 
UART zu reagieren ohne gleichzeitig das aktuelle Fenster meines Displays 
zu verlassen.
Meine einzige Idee war das aktuelle Fenster zu speichern und dann 
zurückzuspringen, aber das scheint mir nicht sehr elegant.
Vielleicht hat ja jemand eine gute Idee dazu, hänge schon den ganzen Tag 
an dem Problem.

Vielen Dank,
Andreas

von Karl H. (kbuchegg)


Lesenswert?

Andreas P. schrieb:

> Nur weiß ich momentan nicht wie ich das Alles am besten kombiniere,
> sprich wenn ich in meiner State Machine in einem Zustand warte auf den
> UART zu reagieren ohne gleichzeitig das aktuelle Fenster meines Displays
> zu verlassen.

meherer State machines zu kombinieren läuft des öfteren auf eine der 3 
Möglichkeiten hinaus


* die einzelnen State machines bleiben voneinenader getrennt.
  Sie kommunizeren über globale Variablen

* die einzelnen State machines bleiben voneinander getrennt,
  weil sie nichts voneinander zu wissen brauchen

* die Einzel-machines sind zwar schön ung gut. Aber um sie
  zusammenzuführen, entwickelt man eine 3. state machine, welche
  die Eigenschaften der ersten beiden in sich vereint und die
  Querbezüge der einzelnen state machines in sich schon berücksichtigt
  hat

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.