Hallo, ich habe ein Problem bei einer Ampelschaltung: Wie muss ich das Programm schreiben damit das einmalige Tastersignal von P40 oder P41, also die Variable a oder b solange auf 1 ansteht bis das Programm zu dieser Abfrage gelaufen ist? Danke im vorraus!
1 | while (P4 == 0x00) |
2 | {
|
3 | P1 = 0x02; // 1.Fußgängerampeln rot |
4 | P2 = 0x02; // 2.Fußgängerampeln rot |
5 | |
6 | P5 = 0x24; |
7 | warte1ms (10000); |
8 | P5 = 0x34; |
9 | warte1ms (5000); |
10 | P5 = 0x0C; |
11 | warte1ms (5000); |
12 | P5 = 0x14; |
13 | warte1ms (5000); |
14 | P5 = 0x24; |
15 | warte1ms (10000); |
16 | P5 = 0x26; |
17 | warte1ms (5000); |
18 | P5 = 0x21; |
19 | warte1ms (5000); |
20 | P5 = 0x22; |
21 | warte1ms (10000); |
22 | |
23 | }
|
24 | |
25 | |
26 | if (P40 == 1) // Ampel 1 Fußgänger |
27 | {
|
28 | a=1; |
29 | while (a==1) |
30 | {
|
31 | P5 = 0x11; |
32 | warte1ms (5000); // 1.Auto Ampel gelb 2.Auto Ampel grün |
33 | |
34 | P5 = 0x21; |
35 | warte1ms (15000); // 1.Auto Ampel rot 2.Auto Ampel grün |
36 | |
37 | P1 = 0x01; |
38 | warte1ms (15000); // 1.Fußgängerampel grün |
39 | P40 = 0; |
40 | a=0; |
41 | }
|
42 | }
|
43 | |
44 | |
45 | if (P41 == 1) // Ampel 2 Fußgänger |
46 | {
|
47 | b=1; |
48 | while (b==1) |
49 | {
|
50 | P5 = 0x22; |
51 | warte1ms (5000); // 2.Auto Ampel gelb 1.Auto Ampel grün |
52 | |
53 | P5 = 0x0C; |
54 | warte1ms (15000); // 2.Auto Ampel rot 1.Auto Ampel grün |
55 | |
56 | P2 = 0x01; |
57 | warte1ms (15000); // 2.Fußgängerampel grün |
58 | P41 = 0; |
59 | b=0; |
60 | }
|
61 | }
|