www.mikrocontroller.net

Forum: Compiler & IDEs Bool problem


Autor: Gizmo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#include <avr/io.h>

int main(void)
{
  unsigned char x;
  bool conversion;

  ADCSR =0b10100110;  // ADSCR initialisieren
  conversion =1;

  if(conversion==1)
  {
    ADCSR =0b11100110;  // Konvertierung starten
    if(bit_is_set(ADCSR,6))
    {
      x = ADCL;      // ADCL auslesen
    x += (ADCH<<8);
    }
      else
    {
      sbi(ADCSR,6);
    }
  }
  /* Endlosschleife */
  for (;;);

  return 0;
}

in welcher header datei ist der datentyp bool definiert?

wenn ich versuche diesen code zu compilieren sagte der Compiler:

ADfunktion.c:9: error: `conversion' undeclared (first use in this
function)

wo lieget hier der Fehler?
ich habe conversion als bool deklariert und mit 1 initialisiert müsste
doch eigentlich so funktionieren.

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Sourcefile ist kein C++-Sourcefile, sondern ein C-Sourcefile. Den
Datentyp "bool" gibt es in C nicht.
In C++ ist das ein Datentyp wie int oder double und daher auch nicht in
einer Headerdatei definiert.

Also:
Entweder Sourcefile umbenennen (adfunktion.cpp) oder auf "bool"
verzichten.

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, das stimmt so nicht (mehr).

In C99 gibt es auch vordefinierte Typen für bool sowie Werte für
false und true, man muss nur #include <stdbool.h> reinziehen.

Autor: Gizmo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Compiler sagt noch:

ADfunktion.c:9: error: `ADCSR' undeclared (first use in this
function)

wieso kennt er ADCSR nicht das Register gibts doch, was isn da los ?
 ansonsten das mit dem bool funzt jetzt danke

Autor: Gizmo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab den Fehler gefunden ich hab ADCSR anstatt ADCSRA geschrieben

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, immer das Headerfile zur Hand haben, das ist bei solchen Problemen
erste Anlaufstelle.

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jörg:
C99-Compiler sind aber noch sehr rar.

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> C99-Compiler sind aber noch sehr rar.

Da wir hier in einem GCC-Forum sind, nicht so sehr. ;-)

Zumindest nicht in dieser Hinsicht.  Einige obskurere Features von
C99 sind allerdings noch nicht supportet.

Ansonsten habe ich derzeit gelegentlich dienstlich den IAR für AVR
in der Hand, der ist in Punkto C99 wohl ähnlich weit (auch wenn man
da schon mal an die Grenzen der Implementierungsbugs stoßen kann...).

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.