Simon K. schrieb:
> sketch_okt23a:24: error: 'Distance' was not declared in this scope
Es gibt als keine Funktion oder Variable names Distance. Zumindest hat
der Compiler in Zeile 24 noch nie etwas davon gehört
> sketch_okt23a:34: error: a function-definition is not allowed here
> before '{' token"
Deine Einrücktiefe zeigt es ohnehin recht deutlich
>
1 | > if (millis() - previousMillis > interval)
|
2 | > {
|
3 | > previousMillis = millis(); // aktuelle Zeit abspeichern
|
4 | > long Distance(long time)
|
5 | > {
|
6 | > long DistanceCalc;
|
7 | > DistanceCalc = ((time /2.9) / 2);
|
8 | > return DistanceCalc;
|
9 | > }
|
10 | > }
|
11 | > }
|
12 | >
|
Du kannst nicht innerhalb einer Funktion eine weitere
Funktiondefinieren. Funktionen stehen immer für sich alleine.
Also nicht
1 | void foo()
|
2 | {
|
3 | ...
|
4 | void bar()
|
5 | {
|
6 | ...
|
7 | }
|
8 | }
|
sondern
1 | void foo()
|
2 | {
|
3 | ...
|
4 | }
|
5 |
|
6 | void bar()
|
7 | {
|
8 | ...
|
9 | }
|
UNd wenn du dann beim Schreiben des Textes auch noch berücksichtigst,
dass der COmpiler den Text genauso wie du auch von oben nach unten liest
(und zwar nur ein einziges mal), dann ist es auch logisch, dass es eine
gute Idee wäre, eine Funktionsdefinition vor ihre erste Verwendung (also
den Aufruf) zu verschieben.
Also nicht
1 | void foo()
|
2 | {
|
3 | bar();
|
4 | }
|
5 |
|
6 | void bar()
|
7 | {
|
8 | ...
|
9 | }
|
sondern
1 | void bar()
|
2 | {
|
3 | ...
|
4 | }
|
5 |
|
6 | void foo()
|
7 | {
|
8 | bar();
|
9 | }
|