-         

Ergebnis 1 bis 7 von 7

Thema: Fehler beim C-Testprogramm des RN-Control ?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    09.02.2005
    Ort
    Erlangen
    Alter
    32
    Beiträge
    88

    Fehler beim C-Testprogramm des RN-Control ?

    Anzeige

    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:

    Code:
    #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;
    }
    Danach wollte ich mal das Demoprogramm (http://www.roboternetz.de/wissen/ind...mprogramm_in_C) mit dem dazugehörigen Header kompilieren. Dabei gibt er mir aber einige Fehler aus? oO

    Die Fehler sind praktisch alle gleich und lauten:

    Code:
    rncontrol.h|199|error: 'for' loop initial declaration used outside C99 mode|
    Was mache ich falsch?

    Mfg Moebius

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672

    Re: Fehler beim C-Testprogramm des RN-Control ?

    Zitat Zitat von Moebius
    Was mache ich falsch?
    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.
    Ergänze die Compileroptionen um "-std=c99".
    MfG
    Stefan

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    42
    Beiträge
    1.140
    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:
    Code:
    -std=gnu99
    Gruß,
    askazo

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    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

  5. #5
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672

    Re: Fehler beim C-Testprogramm des RN-Control ?

    Zitat Zitat von Moebius
    Ich habe Code-Blocks installiert und wollte damit Programme für mein RN-Cotrol schreiben.
    Zitat Zitat von oberallgeier
    Wenn Du AVRStudio benutzt ...
    MfG
    Stefan

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    09.02.2005
    Ort
    Erlangen
    Alter
    32
    Beiträge
    88
    Da hab ich abe viele Antworten bekommen

    Der Befehl
    Code:
    -std=gnu99
    hat mein Problem jetzt aber auch gelöst.

    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

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    Ok, sternst - ich schiebe es auf meine Brille *gggg*. Sorry.
    Ciao sagt der JoeamBerg

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •