Beuth schrieb:
Ich geh mal davon aus, dass die Zuweisungen an P80, P81, P82 und P83 die
Portausgaben sind.
> Ich möchte alle if-Anweisung ausserhalb der while-Schleife verschieben,
Wozu?
Der ganze if-else if Block dient nur dazu, den Messvorgang an den
Portpins P80, P81 und P82 nach aussen zu transportieren. Wenn du den aus
der Schleife rausziehst, kannst du ihn auch gleich löschen, weil er dann
keine Funktion mehr erfüllt.
Edit:
OK, keine Funktion ist übertrieben. Er kann dann immer noch die Funktion
erfüllen, über die Portpins zu dokumentieren wieviele
Schleifendurchgänge notwendig waren, bis die Schleife verlassen wurde,
sofern sie überhaupt mal verlassen wird
1 | while (1) {
|
2 | ...
|
3 | sharp = distance(AD1);
|
4 | i = 0;
|
5 | while (sharp > 3.6 && sharp < 12.1) {
|
6 | P83 = 1;
|
7 | wait_10ms(i);
|
8 |
|
9 | i += 5;
|
10 | sharp = distance( AD1 );
|
11 |
|
12 | if( i >= 20 )
|
13 | P83 = 0;
|
14 | }
|
15 |
|
16 | if (i < 20) {
|
17 | P80 = 0;
|
18 | P81 = 0;
|
19 | P82 = 0;
|
20 | }
|
21 | else if (i < 40) {
|
22 | P80 = 1;
|
23 | P81 = 0;
|
24 | P82 = 0;
|
25 | }
|
26 | else if (i < 55) {
|
27 | P80 = 0;
|
28 | P81 = 1;
|
29 | P82 = 0;
|
30 | }
|
31 | else {
|
32 | P80 = 0;
|
33 | P81 = 0;
|
34 | P82 = 1;
|
35 | }
|
36 | }
|