Ich hab mir mal ein paar andere Posts von dir angesehen.
In einigen davon immer der gleiche 'Fehler'
In C kann man offiziell keine Funktionen innerhalb anderer Funktionen
definieren.
man kann also nicht schreiben
1 | int main()
|
2 | {
|
3 |
|
4 | ....
|
5 |
|
6 | void vorwaerts(int v)
|
7 | {
|
8 | ...
|
9 | }
|
10 |
|
11 | ....
|
12 | }
|
In C wird jede Funktion für sich selbst geschrieben, also nicht
geschachtelt
1 | void vorwaerts(int v)
|
2 | {
|
3 | ...
|
4 | }
|
5 |
|
6 | int main()
|
7 | {
|
8 |
|
9 | ....
|
10 |
|
11 |
|
12 | ....
|
13 | }
|
Das das bei dir keine Fehlermeldung gibt, liegt an einer gcc
Erweiterung, die du besser ignorierst.
Ausserdem scheinst du der Meinung zu sein, nur dadurch, dass du eine
Funktion definierst, wird sie auch schon ausgeführt. Da muss ich dich
enttäuschen: aufrufen musst du sie schon auch. Eine Funktionsdefinition
ist erst mal genau das: wie sieht die Funktion aus. Ausgeführt wird sie
erst, wenn sie aufgerufen wird.
1 | void vorwaerts(int v)
|
2 | {
|
3 | ...
|
4 | }
|
5 |
|
6 | int main()
|
7 | {
|
8 |
|
9 | ....
|
10 |
|
11 | while( 1 ) {
|
12 | vorwaerts( 20 );
|
13 | ....
|
14 | }
|
15 | }
|
Also bring deinen Code in Ordnung.
Und kauf die ein C-Buch. Das sind eigentlich banale Sprach-Grundlagen,
die dir jedes C Buch problemlos beibringen kann. Kaum zu glauben, dass
du den UART Teil selbst geschrieben hast, wenn es schon an solch simplen
Sachen scheitert.