Hallo liebe Mikrocontrollerliebhaber, ich versuche gerade meinen Arduino Mega zum Laufen zu bekommen und wollte dafür an Port E einfach eine '1' ausgeben. Leider schimpft die Arduino IDE, dass ich versuchen würde, mehr als eine IO-Headerdatei einzubinden. Die Meldung kommt von der Datei iomxx0_1.h in der eigentlich die Ports definiert sind. Wie werde ich das Problem los? Viele Grüße MC
MC schrieb: > Wie werde ich das Problem los? Quelltext zeigen. Nicht als Screenshot, sondern einfach Deine *.ino-Datei hier als Dateianhang hochladen.
Ich bin ja nicht der große Arduino-Guru, aber für mich sieht das nach 08/15 "C" aus und nicht nach Eingebungen, die einen Arduino, in seiner angestammten Entwicklungsumgebung, berühren könnten.
Ich möchte auch nicht mit den Arduino Funktionen arbeiten, daher alles in C. Ich wollte eigentlich alle Ports genauso nutzen können, wie beim Arduino Uno zuvor. Mein Problem ist, dass er sämtliche Ports außer Port A, B nicht kennt. Der Arduino Mega hat aber Port A bis H. Wie krieg ich denn die Umgebung dazu, dass er die anderen Ports auch akzeptiert. Die IO-Files sind alle in den Ordnern, ich krieg ihn nur nicht dazu, dass er akzeptiert, jetzt einen ATmega 2560 zu haben. Grüße MC
MC schrieb: > Anbei der Arduino Sketch Nicht jede Datei mit der Extension "ino" ist ein Arduino Sketch. Das Arduino Framework erwartet in der Sketch-Datei eine Funktion namens setup() und eine namens loop().
>Ich möchte auch nicht mit den Arduino Funktionen arbeiten, daher alles >in C. Du kannst nicht die Arduino-Entwicklungsumgebung starten und gleich gegen die Grundsätze der Arduino-Programmierung (Programmstruktur) verstoßen. Der Umkehrschluss meines vorherigen Posts lautet: Die Arduino-Entwicklungsumgebung ist KEIN 08/15 "C"-Compiler.
Das ist vollkommener Quatsch:
1 | //#include <avr/io.h>
|
2 | #include <avr/iomxx0_1.h> |
ein #include <avr/io.h> reicht vollkommen. Die tatsächlich zur Hardware passende Datei wird dann von io.h automatisch eingebunden.
> Das ist vollkommener Quatsch:
Die Zeile davor ist ebenfalls gefährlich.
Hallo, @ Wolfgang (Gast) und Sebastian S. (amateur): das ist so falsch. Ohne setup() und loop() ist es ein (fast) normaler AVR-GCC bzw. die C++ Version, die aufgerufen wird. Es gibt ein paar Fallstricke, das sind aber verblüffend wenige. Ich habe auch schon alte Sourcen einfach in die IDE geworfen. Sein Sketch mit Boardeinstellung Arduino Mega 2560 und diesen includes
1 | //#define __AVR_ATmega2560__ |
2 | #include <avr/io.h> |
3 | //#include <avr/iomxx0_1.h> |
4 | #include <stdio.h> |
5 | #include <stdlib.h> |
6 | #include <stdint.h> //definiert den Datentyp uint8_t |
7 | |
8 | #include <avr/wdt.h> |
compiliert völlig problemlos ohne Fehler und Warnungen. Gruß aus Berlin Michael
g457 schrieb: >> Das ist vollkommener Quatsch: > > Die Zeile davor ist ebenfalls gefährlich. Richtig! Die gehört in das makefile
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.