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