Bool problem

Gast #182103
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.
Gast #182104
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.
Gast #182106
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
Gast #182110
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren