Schleife nach zeit oder tastendruck beenden

OP #2184731
Lesenswert?

Kann mir jemand sagen wie bei meinem Programm in die Hauptschleife 
zurückspringe?
1
  for(;;)
2
  {
3
    if(get_key_short(ENC_TASTER))
4
    {
5
      while(1)
6
      {
7
        val += encode_read();
8

9
        if(nSelect == 0)                    // Haupt-Menü
10
        {
11
          if (val > 3) val = 3;
12
          if (val < 0) val = 0;
13
        }
14

15
        if(nSelect == 1)                    // Floppy-ID Menü
16
        {
17
          if (val > 5) val = 5;
18
          if (val < 4) val = 4;
19
        }
20

21
        switch(val)
22
        {
23
          // Hauptmenü
24
          case 0:
25
            LEDS_PORT = _I | marker;            // I (00110000) -> ID
26
            if(get_key_short(ENC_TASTER))
27
            {
28
              val = 4;
29
              nSelect = 1;
30
            }
31
            break;
32

33

34
          // Floppy-ID
35
          case 4:
36
            LEDS_PORT = _8;                  // 8 (01111111) -> ID 8
37
            if(get_key_short(ENC_TASTER))
38
            {
39
              floppy_id(8);
40
              reset();
41
              val = 0;
42
              nSelect = 0;
43
              ende = 1;
44
            }
45
            break;
46
        }
47
        if(ende == 1)
48
        {
49
          break;
50
        }
51
      }
52
      return 0;
53
    }
54
  }
55
}

ich dachte ich setze einfach eine variable die ich dann in der Schleife 
abfrage und mit einem "break" beende. Allerdings funktioniert das leider 
so nicht.
Gast #2184819
Lesenswert?

Machste genauso: Brauchst natürlich nen Timer, welcher die Zeit 
runterzählt...und dann musste beim reinspringen ins Menü den Wert neu 
setzen und abfragen, ob er >0 ist, wenn nicht, dann Menü verlassen.

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