C >>> Ausgelagerte/autonome Abläufe möglich?

OP #5860603
Lesenswert?

Hallo!
Versuche mich an einem Mini-Spiel.
Hier müssen Abläufe mit entsprechenden LED-Indikationen erfüllt werden 
bevor der User zum Ziel gelangt (oder nicht).

Der Ablauf ist klar, aber es müssen immer wieder Tasten abgefragt und 
autonom dazu LED-Signale (blinkend, dauerhaft, 1-malig für X Sek.) 
signalisieren.
Mit "Interrupt" setze ich mich gerade auseinander.

Ich stelle mir vor, dass aus dem main() hin und wieder Macros mit 
diversen LED-Signalisierungen angesprochen werden - teiles 2 parallel - 
und autonom bis zu einem Stopp-Befehl stumpf in einer Endlosschleife 
verharren.
Jetzt suche ich nach einer "sauberen" Struktur.

Folgend eine Signal-Schleife (9 unterschiedliche Signalvarianten):
1
void Scharf_fehler(void)  // Türe nicht geschlossen
2
{
3
  AlleSignale_aus();
4
  //uint8_t Durchlauf=5;
5
  //while (Durchlauf)
6
  while (1)
7
  {
8
    //LED_GN_ON;
9
    LED_GE_ON;
10
    //LED_RT_ON;
11
    SIGNAL_ON;
12
    //ALARM_ON;
13
    WarteMS(200);
14
    //LED_GN_OFF;
15
    LED_GE_OFF;
16
    //LED_RT_OFF;
17
    //SIGNAL_OFF;
18
    //ALARM_OFF;
19
    WarteMS(100);
20
    //Durchlauf--;
21
  }
22
}

_Hintergrund_
Anfänger
C
ATMEL ATtiny84
ATMEL Studio 7.0.x
OP #5860868
Lesenswert?

Ok, State machine ist klar, jetzt "nur noch" einen Timer 0 zum laufen 
kriegen und via Interrupt auswerten.
Wichtig, aber nicht ganz so einfach.

Interner Takt steht derzeit auf 1MHz;
#define F_CPU 1000000UL
Gibt es hier günstige und ungünstige Konstellationen im Zusammenhang mit 
einem Timer?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren