#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.
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.
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.
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
Tja, immer das Headerfile zur Hand haben, das ist bei solchen Problemen erste Anlaufstelle.
> 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...).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.