Forum: Mikrocontroller und Digitale Elektronik Arduino IO-File Problem


von MC (Gast)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

MC schrieb:
> Wie werde ich das Problem los?

Quelltext zeigen. Nicht als Screenshot, sondern einfach Deine 
*.ino-Datei hier als Dateianhang hochladen.

von MC (Gast)


Angehängte Dateien:

Lesenswert?

Anbei der Arduino Sketch

und der Quelltext

von Sebastian S. (amateur)


Lesenswert?

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.

von MC (Gast)


Lesenswert?

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

von Wolfgang (Gast)


Lesenswert?

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().

von Sebastian S. (amateur)


Lesenswert?

>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.

von Harry L. (mysth)


Lesenswert?

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.

von g457 (Gast)


Lesenswert?

> Das ist vollkommener Quatsch:

Die Zeile davor ist ebenfalls gefährlich.

von Michael U. (amiga)


Lesenswert?

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

von Harry L. (mysth)


Lesenswert?

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
Noch kein Account? Hier anmelden.