www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme beim Compilieren (ATmega 32)


Autor: Gernot (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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'

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
poste deinen code

Autor: Gernot (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
void main(void)
{
  float AkkuWert;

  AkkuWert = AD_start(0x02);
  pwm_dimm(0xFF);

  while(1)
  {
    AkkuWert = AD_start(0x02) * 5.8;
    
    if (AkkuWert < 12.4)
      pwm_dimm(0xFF);
    else
      pwm_dimm(0x00);
    
  }
      
}

Das ist der code vom einfachen Projekt.
Auch bei dem kommt die Fehlermeldung, obwohl es schon zuvor funktioniert 
hat.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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>...

Autor: Gernot (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

#include <avr/io.h>
#include <stdint.h>
#include <stdlib.h>
#include <avr/interrupt.h>
#include <avr/wdt.h>


float AD_start (char Kanal);
void pwm_dimm(char Helligkeit);

void main(void)
{
  float AkkuWert;

  AkkuWert = AD_start(0x02);
  pwm_dimm(0xFF);

  while(1)
  {
    AkkuWert = AD_start(0x02) * 5.8;
    
    if (AkkuWert < 12.4)
      pwm_dimm(0xFF);
    else
      pwm_dimm(0x00);
    
  }
      
}


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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.