Forum: Mikrocontroller und Digitale Elektronik Arduino Syntax in Eclipse/AVR Studio


von Robbie (Gast)


Lesenswert?

Hallo,

ich bin faul und würde gerne
1
pinMode (9, OUTPUT);
2
digitalWrite (9, HIGH);
anstatt
1
DDRB  = 0xff;             
2
PORTB = (1<<PB1);
nutzen.
Gibt es eine Möglichkeit, die Arduino Syntax in zB Eclipse zu nutzen und 
diesen dann als ganz "normale" *.hex Datei zu flashen, ohne den Arduino 
Bootloader nutzen zu müssen?
Ich habe ein STK500 und da ist das leider etwas komplizierter, diesen 
Weg zu gehen.

Vielen Dank!

von Dussel (Gast)


Lesenswert?

Eine ganz abwegige Idee wäre, die Funktionen pinMode(…) und 
digitalWrite(…) zu schreiben.

von Robbie (Gast)


Lesenswert?

Ich meinte mit meiner Frage nicht, genau diese Funktionen zu 
replizieren, sondern die gesammte Arduino Library zu verwenden.

von Bitflüsterer (Gast)


Lesenswert?

Ich kenne mich mit Arduino nicht aus (die Gründe dafür erspare ich 
Euch), aber zumindest liest sich die Verwendung wie eine C-Funktion oder 
ein C-Makro.
Es wäre vielleicht eine interessante Aufgabe eine Funktion pinMode und 
eine Funktion digitalWrite in C zu schreiben.
Wirklich schwer ist das nicht. Und man muss ja nicht gleich alle Typen 
erfassen sondern nur so die für einen selbst wichtigsten.

von Bitflüsterer (Gast)


Lesenswert?

Dussel schrieb:
und war schneller.

Robbie schrieb:
> Ich meinte mit meiner Frage nicht, genau diese Funktionen zu
> replizieren, sondern die gesammte Arduino Library zu verwenden.

Dann schreib doch das, was Du meinst. :-)

Vermutlich ist die Arduino-Library Closed source. (Korrigiert mich 
bitte, wenn ich falsch liege). Das heisst, Du wirst sie selbst nachbauen 
müssen. Das aber hat vermutlich auch schon jemand gemacht.

von Bitflüsterer (Gast)


Lesenswert?

Es scheint den Sourcecode doch offen zu geben.
https://github.com/arduino/Arduino/tree/master/libraries

von Dr. Sommer (Gast)


Lesenswert?

Robbie schrieb:
> Gibt es eine Möglichkeit, die Arduino Syntax in zB Eclipse zu nutzen und
> diesen dann als ganz "normale" *.hex Datei zu flashen, ohne den Arduino
> Bootloader nutzen zu müssen?
Das ist keine "Arduino-Syntax", sondern ganz normale C++ Syntax, bei der 
die Arduino Library verwendet wird.

Robbie schrieb:
> Ich habe ein STK500 und da ist das leider etwas komplizierter, diesen
> Weg zu gehen.
Das hat doch einen Serial Port. Da kannst du doch ganz wunderbar den 
Arduino-Bootloader und die Arduino-IDE mit verwenden.

Bitflüsterer schrieb:
> Ich kenne mich mit Arduino nicht aus (die Gründe dafür erspare ich
> Euch), aber zumindest liest sich die Verwendung wie eine C-Funktion oder
> ein C-Makro.
C++ Funktion.

Bitflüsterer schrieb:
> Vermutlich ist die Arduino-Library Closed source.
Nein, sie ist Open-Source. Hier ist der Quellcode:
https://github.com/arduino/Arduino/tree/master/hardware/arduino/cores/arduino
(in den anderen Verzeichnissen dieses Repositories findet sich noch 
mehr, das ist nur der "Core").
Die digitalWrite Funktion z.B. ist hier:
https://github.com/arduino/Arduino/blob/master/hardware/arduino/cores/arduino/wiring_digital.c#L137

Das muss man dann nur noch in das eigene makefile einbinden.

von Robbie (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Robbie schrieb:
>> Ich habe ein STK500 und da ist das leider etwas komplizierter, diesen
>> Weg zu gehen.
> Das hat doch einen Serial Port. Da kannst du doch ganz wunderbar den
> Arduino-Bootloader und die Arduino-IDE mit verwenden.

Das geht leider nicht so einfach.
Den Bootloader laden schon, aber dann wird es schwierig.
Der Bootloader wartet nach einem Reset kurz, ob etwas kommt, dann 
startet er den Code. Das STK500 kann aber leider nicht kurz vor dem 
Schreiben den UC resetten, so dass das händisch geschehen muss, was 
erstens nervig ist und zweitens nicht immer funktioniert.
Das war meine bescheidene Erfahrung dahingehend.
Bitte korrigiert mich, falls es auch anders/besser geht.

von Ein (Gast)


Lesenswert?

Bitflüsterer schrieb:
> Vermutlich ist die Arduino-Library Closed source. (Korrigiert mich
> bitte, wenn ich falsch liege).

Zu faul, wenigsten einmal Wikipedia aufzurufen (zweiter Satz)
http://de.wikipedia.org/wiki/Arduino-Plattform

von Robbie (Gast)


Lesenswert?

Bitflüsterer schrieb:
> Es scheint den Sourcecode doch offen zu geben.
> https://github.com/arduino/Arduino/tree/master/libraries

von chris_ (Gast)


Lesenswert?

Es ist relativ einfach und hier beschrieben:
Beitrag "Arduino mit Eclipse AVR-gcc Plugin programmieren"

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.