Du hast dem Compiler keinen (oder den falschen) C-Standard vorgegeben, denn sowas wie "for (int i = 0;" ist erst seit dem letzten C-Standard erlaubt.Zitat von Moebius
Ergänze die Compileroptionen um "-std=c99".
Hi,
ich habe ein seltsames Problem. Ich habe Code-Blocks installiert und wollte damit Programme für mein RN-Cotrol schreiben.
Ein einfaches wie dieses hier kann ich auch kompilieren:
Danach wollte ich mal das Demoprogramm (https://www.roboternetz.de/wissen/in...mprogramm_in_C) mit dem dazugehörigen Header kompilieren. Dabei gibt er mir aber einige Fehler aus? oOCode:#include <avr/io.h> int main(void) { // Insert code DDRA |= 0x00; //00000000 -> alle Analogports als Eingänge DDRB |= 0x03; //00000011 -> PORTB.0 und PORTB.1 sind Kanäle des rechten Motors DDRC |= 0xFF; //11111111 -> PORTC.6 und PORTC.7 sind Kanäle des linken Motors, Rest sind LEDs für Lauflicht DDRD |= 0xB0; //10110000 -> PORTD.4 ist PWM-Kanal des linken Motors, PORTD.5 des rechtenccff return 0; }
Die Fehler sind praktisch alle gleich und lauten:
Was mache ich falsch?Code:rncontrol.h|199|error: 'for' loop initial declaration used outside C99 mode|
Mfg Moebius
Du hast dem Compiler keinen (oder den falschen) C-Standard vorgegeben, denn sowas wie "for (int i = 0;" ist erst seit dem letzten C-Standard erlaubt.Zitat von Moebius
Ergänze die Compileroptionen um "-std=c99".
MfG
Stefan
Dein Problem ist, dass Du dem Compiler sagen musst, dass er den C99-Standard verwenden soll. Sonst arbeitet er im C90 oder C95-Modus und da sind so Sachen wie Deklarationen innerhalb von for-Anweisungen nicht erlaubt.
Um den C99-Modus einzuschalten, musst Du folgende Compileroption in Dein makefile einfügen:
Gruß,Code:-std=gnu99
askazo
Wenn Du AVRStudio benutzt und dabei wie ich ohne jedes makefile arbeitest, dann gehst Du auf die oberste Toolleiste [Projekt], im Flyout klickst Du ganz unten? auf [Cofiguration Options] (oder in der AVRGCCPLUGIN-Toolleiste auf dieses seltsame Zahnrad) dort wieder ganz unten auf [Custom Options]. Du bekommst zwei Fenster zu Custom Compilation Options. Das rechte kannst Du editieren: Drücke auf [add] und füge unten dieses
-std=gnu99
ein.
Danach sollte der Compiler richtig arbeiten.
Ciao sagt der JoeamBerg
Zitat von MoebiusZitat von oberallgeier
MfG
Stefan
Da hab ich abe viele Antworten bekommen
Der Befehlhat mein Problem jetzt aber auch gelöst.Code:-std=gnu99
Dazu musste ich den Reiter Project/Build Options anklicken.
Dort dann auf den Projectname klicken und den Reiter Compiler settings/Other options anklicken. Danach kann man dort einfach den gegebenen Befehl reinschreiben. Das wars.
Da habe ich aber gleich die nächste Frage:
Nachdem der das Programm kompiliert hat, sind jetzt folgende Dateien entstanden:
name.elf
name.elf.eep.hex
name.elf.hex
name.elf.map
Ehrlich gesag hatte ich gehofft der gibt mir nur eine Datei mit der Endung .hex aus? Was sind denn diese ganzen Dateien?
Mfg Moebius
Ok, sternst - ich schiebe es auf meine Brille *gggg*. Sorry.
Ciao sagt der JoeamBerg
Lesezeichen