Forum: Mikrocontroller und Digitale Elektronik Arduino Bibliothek


von joh! (Gast)


Lesenswert?

Hallo Leute!

Da ihr hier die Spezialisten seid werde ich meine Frage euch stellen.

Ich habe zu meinem Geburtstag von einem Bekannten einen Arduino Uno 
bekommen.
Da ich vorher schon ein bisschen mit den AVRs gebastelt habe, erscheint 
mir die Arduino-Architektur äußerst "robust" und einfacher gehalten als 
das ganze Gefrickel mit dem "normalen C (GCC)" (Avr Studio) für AVRs.

Unabhängig vom Arduino Uno möchte ich jetzt beispielsweise eine 
Schaltung aufbauen und den Arduino ebenso "komfortabel" und einfach wie 
in der Arduino-IDE programmieren. Am besten in AVR-Studio.

Ist das irgendwie möglich, die Bibliotheken da einzubinden?

Was ich zum Beispiel einfach toll finde ist, dass man beim Arduino sich 
keine Gedanken über das Debouncen von Schaltern machen muss.
Ein Befehl, und der Taster wird genau so eingelesen, wie man es haben 
will!

Habt ihr Erfahrung damit?



Danke!

von joh! (Gast)


Lesenswert?

*den AVR, nicht "...den "Arduino" programmieren".

von Hubert G. (hubertg)


Lesenswert?

Was spricht dagegen dir ein "debounce" zu programmieren oder was 
fertiges herzumehmen. Entsprechend in dein Programm einbinden und es 
genügt "Taste abfragen".
Anders wird es in der Arduino Umgebung auch nicht gemacht.

von joh! (Gast)


Lesenswert?

>Anders wird es in der Arduino Umgebung auch nicht gemacht.

Doch, da ich es dort eben nicht erst programmieren muss ;-)

von fuelre (Gast)


Lesenswert?

In Atmel Studio 6 kannst du direkt die ganze arduino IDE einfügen

Wie einfach googlen

von F. F. (foldi)


Lesenswert?

Im Atmel Studio kannst du auch direkt auf Arduino zugreifen.
Das kann man da installieren.

Du kannst aber genauso gut in C oder C++ dort deine Programme schreiben 
und sie über die ISP Schnittstelle übertragen.

Die Arduinos sind ein nützliches Tool, um den Code zu testen, fertige 
Schaltungen mache ich dann aber auf Lochraster (wenn es Einzelstücke 
bleiben)

Sicher geht ne Menge mit Arduino und zum Einstieg ist es eine tolle 
Sache, aber um richtig die Materie zu verstehen und auch später mit 
anderen Architekturen arbeiten zu können, kann ich dir nur einen 
schnellen Wechsel zu C empfehlen.
Die Nano sind toll fürs Steckbrett.

von Hubert G. (hubertg)


Lesenswert?

joh! schrieb:
> Doch, da ich es dort eben nicht erst programmieren muss ;-)

Es gibt ja auch fertige debounce-Routinen, die hat, genau wie beim 
Arduino, auch schon jemand für dich gemacht.
Wenn man aber mit dem was Arduino hergibt nicht mehr auskommt, wird man 
um ein wenig programmieren nicht herumkommen.
Arduino-Bibliotheken so einfach ins AVR-Studio einbinden wird nicht 
funktionieren.

von joh! (Gast)


Lesenswert?

Danke erstmal für die Antworten, dann muss ich das wohl erstmal googlen! 
:)

>Sicher geht ne Menge mit Arduino und zum Einstieg ist es eine tolle
>Sache, aber um richtig die Materie zu verstehen und auch später mit
>anderen Architekturen arbeiten zu können, kann ich dir nur einen
>schnellen Wechsel zu C empfehlen.

Ja C ist klar die "universellere" Wahl. Aber: Der Zweck heiligt die 
Mittel.

Das heißt, dass ich nun einen x-beliebigen AVR-Controller (z.B. ATmega8) 
mit der Arduino-Lib über meinen AVRISPmkII oder auf dem STK500 
programmieren kann?

Danke!

von Thomas L. (thomas_hx)


Lesenswert?

Zumindest die Typen die auch auf den diversen Arduinos eingesetzt 
werden.

von Karl H. (kbuchegg)


Lesenswert?

joh! schrieb:

> Das heißt, dass ich nun einen x-beliebigen AVR-Controller (z.B. ATmega8)
> mit der Arduino-Lib über meinen AVRISPmkII oder auf dem STK500
> programmieren kann?

Im Prinzip: ja

Denn auch die Arduino-IDE kann ja nicht zaubern. Irgendwo muss es eine 
Konfigurations-Datei geben, in der zb steht, auf welchen Port/Pin der 
Digital-Pin 14 zu mappen ist, damit dann auch wirklich an der mit 14 
beschrifteten Klemme der entsprechende Pegel erscheint.

Soviel ich weiß, benutzt das Arduino System auch einen der Timer als 
'Systemtimer'. Da muss man natürlich auch darauf achten, dass der 
benutzte µC diesen Timer auch tatsächlich hat, bzw. für Ersatz sorgen.

Derartige Hardware-abhängige Dinge muss man dann eben im Original finden 
und an den tatsächlich benutzten Controller anpassen.
Viele andere fertige Arduino-'Libs' sind ja dann sowieso nicht mehr 
soweit hardware-abhängig, so dass man sie einfach kompiliert und gut 
ists.

Aber im Grunde ist ein Arduino Programm auch nur ein C++ Programm, 
welches durch den C++ Compiler geschickt wird. Denn wie gesagt: Da ist 
ja auch kein Zauberer oder irgendwelche dunkle Magie am Werk. Aber um 
ein wenig Beschäftigung damit, wie das Arduino System auf Code-Ebene 
(also die Runtime, nicht die Entwicklungsumgebung) eigentlich 
funktioniert, wirst du nicht herumkommen.

: Bearbeitet durch User
von F. F. (foldi)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Derartige Hardware-abhängige Dinge muss man dann eben im Original finden
> und an den tatsächlich benutzten Controller anpassen.
> Viele andere fertige Arduino-'Libs' sind ja dann sowieso nicht mehr
> soweit hardware-abhängig, so dass man sie einfach kompiliert und gut
> ists.

Vor allem sind auch viele Libs in C oder C++ geschrieben und wenn etwas 
in Arduino nicht so funktioniert und du kannst nicht wenigstens 
ansatzweise C-Code lesen, dann wirst du dir das nicht hinbiegen können, 
ohne auf so nette Leute wie Karl Heinz zurück zu greifen.

Wenn du nicht verstehst was
Variable |= (1 << 2);    oder
Variable &= (1 << 3);
macht, dann wirst du dir auch in Arduino oft auf dem Schlauch stehen.

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.