AVR GCC Fehlermeldungen

Gast #2647388
Hallo,

ich probiere mich gerade daran ein PWM Signal auszuwerten und damit 
verschiedene LEDs anzusprechen. Jetzt wollte ich mein Projekt 
kompilieren, bekomme aber rund 40 Fehlermeldungen.

ca. 20 davon melden das gleiche Problem.

In meinem Programmcode habe ich geschrieben:

volatile unsigned int counting;
[...]
counting = 1;

In der Fehlermeldung steht dann "Conflicting type qualifiers for 
"counting""

Und es kommt die Warnung, dass F_CPU für die delay.h nicht definiert 
ist, obwohl ich das meines Wissens getan habe:

# undef F_CPU
# define F_CPU 8000000UL

Oder habe ich die falsch definiert?!

Diese verstehe ich also irgendwie nicht. Ist wahrscheinlich etwas ganz 
banales, aber ich komme einfach nicht drauf.

Ich hoffe ihr könnt mir helfen,

Lepo95
Gast
Danke erstmal. Die Variable Counting wird in der untenstehenden ISR 
benutzt. Immer wenn das PWM Signal auf High steht, steht in der Variable 
Counting auch eine 1.

Hier einmal alle Ausschnitte aus meinem Code, in denen Counting 
vorkommt:

volatile unsigned int counting;
[..]
counting = 1; // Um die Variable schon einmal mit einer 1 zu belegen
[..]
ISR(TIMER1_CAPT_vect) //Zum Messen der Länge eines High-Pegels
{
  if(counting)
  {
    time = ICR1;
    TCCR1B |= (1 << ICES1);
    TIFR |= (1 << ICF1); //deleting of the Input Capture Flag
    TCNT1 = 0;
    overflow = 0;
    counting = 0;
  }
  else if(counting == 0)
  {
    time2 = ICR1; //Copying of 2nd counter reading
    overflow = 0;
    TIFR |= (1 << ICF1);
    counting = 1;
    TCCR1B &= ~(1 << ICES1);
    time_difference = gettimer() / 1092; //Mü-Seconds
  }
}

Die Fehlermeldungen inkl. Warnungen sehen wie folgt aus, alle gehören zu 
der Variable Counting:

Warning  1  data definition has no type or storage class 
C:\Users\Leon-Laptop\Documents\AVRStudio 5.1\AVRGCC2\AVRGCC2\AVRGCC2.c 
52  1  AVRGCC2
Warning  2  type defaults to 'int' in declaration of 'counting' 
C:\Users\Leon-Laptop\Documents\AVRStudio 5.1\AVRGCC2\AVRGCC2\AVRGCC2.c 
52  1  AVRGCC2
Error  3  conflicting type qualifiers for 'counting' 
C:\Users\Leon-Laptop\Documents\AVRStudio 5.1\AVRGCC2\AVRGCC2\AVRGCC2.c 
52  1  AVRGCC2

Vielen Dank schon einmal im Voraus!

Lepo95
Das sind ja immer noch zusammenhanglose Codefetzen.

Lepo95 schrieb:
> volatile unsigned int counting;
> [..]
> counting = 1; // Um die Variable schon einmal mit einer 1 zu belegen
> [..]

Aber ich nehme mal an, du deklarierst eine globale Variable und 
versuchst dieser einen Wert zuzuweisen. Das funktioniert nur direkt:
volatile unsigned int counting = 1;

Dir fehlen die Grundlagen in C. Programmieren lernt man nicht mit der 
Trial and Error Methode. Und C schon gar nicht.

mfg.
Gast
Vielen Dank. ich werde das gleich mal ausprobieren.
Mir ist schon klar, dass man C nicht einfach so lernt. Ich habe letztes 
Jahr ein Semester lang die Programmiersprache Ruby gelernt. Und habe 
versucht diese Kenntnisse auf C anzuwenden. Ich werde mich dann aber 
wohl noch etwas mehr mit den C-Grundlagen auseinandersetzen müssen. Aber 
vielen Dank für Eure gute Hilfe.

Lepo95
Lepo95 schrieb:
> volatile unsigned int counting;
> [..]
> counting = 1; // Um die Variable schon einmal mit einer 1 zu belegen

Ach so. Wenn "counting = 1" im globalen Scope steht, erklärt das die 
Fehlermeldung. Das bedeutet dann, dass eine neue Variable angelegt 
werden soll und der die Zahl 1 zugewiesen werden soll. Da kein Typ da 
steht, gilt "int" als Default. Das ist aber weder unsigned noch volatile 
und beißt sich mit der vorherigen Deklaration von counting.
Gast
So, vielen Dank. Alle meine Fehlermeldungen sind jetzt weg.
Demnächst wird das Programm dann auf den Controller gespielt. Falls dann 
noch Probleme auftauchen, melde ich mich nochmal.

Vielen Dank
Lepo95

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.