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

OP #5860603
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
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

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.