- Labornetzteil AliExpress         
Ergebnis 1 bis 8 von 8

Thema: Fehler beim Compilen

  1. #1

    Fehler beim Compilen

    Anzeige

    Praxistest und DIY Projekte
    Hi zusammen,
    ich hab gerad mein erstes Programm geschrieben und auf meine AVR geladen - Eine LED an Port B einschalten *stolz*

    Nun hab ich das Programm erweitert auf folgenden unglaublich komplizierten Code:
    Code:
    #include <inttypes.h>
    #include <avr/io.h>
    
    int main (void)
     {
      uint16_t i;
      DDRB = 0xFF;
    
      while(1)
       {
        for (i = 0; i < 1000; i++)
         {
          asm volatile("nop");
         }
        PORTB = 0x00;
    
    
        for (i = 0; i < 1000; i++)
         {
          asm volatile("nop");
         }
        PORTB = 0xFF;
       }
    }
    Wenn ich nun die HexFile erzeugen will, meint der:
    HelloWorld.c:4 *** missing separator. Stop.
    Zeile 4 ist aber int main (void). Wie kann das sein, denn diese und die Zeilen darüber hab ich nichteinmal editiert?!

    Thanx in Advance
    Alex

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Ist die folgende Zeile denn so richtig?

    uint16_t i;

    oder gehört da eventuell ein "=" oder irgendein Operator dazwischen?

    Ich habe leider keine Ahnung von C und kann nur daher nur raten

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2004
    Ort
    Karlsruhe
    Beiträge
    223
    hmm, ich kann so keinen Fehler sehen. Probier doch mal ein "make clean", vielleicht fliegt noch irgendwas unaufgeräumtes rum was Ärger macht. Hatte ich zumindest schon ...

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2004
    Ort
    Karlsruhe
    Beiträge
    223
    @recycle:
    Code:
    uint16_t i;
    ist so richtig. Dabei wird die Variable i vom Typ uint16_t deklariert. Alternative wäre
    Code:
    uint16_t i=0;
    wenn du gleich einen Startwert mitgeben willst. Dann tutst du die Variable deklarieren und gleichzeitig definieren.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    @recycle:

    uint16_t i;

    ist so richtig. Dabei wird die Variable i vom Typ uint16_t deklariert.
    OK, Deklaration von Variablen sagt mir schon etwas, ich wusste nur nicht, dass uint16_t ein Datentyp ist.
    War wie gesagt auch nur geraten.

  6. #6
    lol ich hab's.

    Ich hab make -f HelloWorld.c statt make -f HelloWorld.mak.

    Ich n00b - *duck* nicht schlagen xD

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2004
    Ort
    Karlsruhe
    Beiträge
    223
    na prima
    Wenn die Datei "Makefile" heißt findet make die automagisch. Dann reicht ein "make all" oder einfach "make". Find ich persönlich deutlich schöner weil eh jedes Projekt ein neues Verzeichnis bekommt.

  8. #8
    hmm cool - sogar ich lern noch dazu

    Ich leg auch immer neue Ordner für jedes Projekt an, dann werd ich mir das demnächst angewöhnen...

Berechtigungen

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

12V Akku bauen