Da ich nun mit meiner Platine für ein Solar Projekt von mir fertig bin, bin ich nun daran gegangen den µC zu programmieren. Wenn ich aber eine .hex erstellen will dann gibt mir der compiler aus das in der stdint.h 3 fehler wären. Bei vorherigen Projekten hat er sich dabei noch nie aufgeregt. Deswegen hab ich ein altes Projekt neu compiliert, und musste leider feststellen das er auch die nicht mehr richtig compilieren schafft. Hat jemand eine Ahnung woran das liegen könnte? P.S.: folgende Fehlermeldung kommt: c:/winavr-20070525/bin/../avr/include/stdint.h:121: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'typedef'
1 | void main(void) |
2 | {
|
3 | float AkkuWert; |
4 | |
5 | AkkuWert = AD_start(0x02); |
6 | pwm_dimm(0xFF); |
7 | |
8 | while(1) |
9 | {
|
10 | AkkuWert = AD_start(0x02) * 5.8; |
11 | |
12 | if (AkkuWert < 12.4) |
13 | pwm_dimm(0xFF); |
14 | else
|
15 | pwm_dimm(0x00); |
16 | |
17 | }
|
18 | |
19 | }
|
Das ist der code vom einfachen Projekt. Auch bei dem kommt die Fehlermeldung, obwohl es schon zuvor funktioniert hat.
Nö, das ist nicht der komplette Code. Wenn ein Fehler in der stdint.h gemeldet wird, dann liegt der Fehler im Bereich der #includes, und die zeigst Du nicht. Ich vermute aber mal ein Semikolon zu viel nach einer Präprozessoranweisung, und zwar vor #include<stdint.h>...
1 | #include <avr/io.h> |
2 | #include <stdint.h> |
3 | #include <stdlib.h> |
4 | #include <avr/interrupt.h> |
5 | #include <avr/wdt.h> |
6 | |
7 | |
8 | float AD_start (char Kanal); |
9 | void pwm_dimm(char Helligkeit); |
10 | |
11 | void main(void) |
12 | {
|
13 | float AkkuWert; |
14 | |
15 | AkkuWert = AD_start(0x02); |
16 | pwm_dimm(0xFF); |
17 | |
18 | while(1) |
19 | {
|
20 | AkkuWert = AD_start(0x02) * 5.8; |
21 | |
22 | if (AkkuWert < 12.4) |
23 | pwm_dimm(0xFF); |
24 | else
|
25 | pwm_dimm(0x00); |
26 | |
27 | }
|
28 | |
29 | }
|
Hier jetzt auch mit den includes und den Funktionsprototypen. Hoffe du kannst mit damit weiter helfen. In den einzelnen funktionen ist stdint.h nicht als #include datei hinzugefügt.
Du hattest nicht zufällig die avr/io.h mal offen (oder das Include File welches von dort includiert wird) und hast ohne es zu merken, dort einen Fehler eingebaut. Wie Johannes schon anmerkte, sind das meist irgendwelche Semicolons die im Include File vor dem mit dem Fehler gemacht werden oder dort fehlen. > In den einzelnen funktionen ist stdint.h nicht als > #include datei hinzugefügt. Im Build Log siehst du ja, welche *.c gerade compiliert wird. In deinem Fall müsste das dann die *.c mit dem main() sein. Schau mal in die stdint.h hinein. Such dir die Zeile 121 und schau dort mal nach. Wenn in dieser Zeile nichts Auffallendes ist, dann auch die Zeilen davor untersuchen. Wenn das die erste interessante Zeile ist (weil davor nur Kommentare sind), dann auch im Header File, welches unmittelbar davor benutzt wird, die letzten Zeilen begutachten. Es kommt schon mal vor, dass man in diesen Header Files etwas nachschlägt und dabei unabsichtlich ein Zeichen einfügt oder weglöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.