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 Moebius
Zitat 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