Forum: Offtopic Arduino Programmiersprache??


von Jan R. (Gast)


Lesenswert?

Hi,

Was ist das eigentlich für eine Programmiersprache, die Arduino 
verwendet? Irgendwie wie C aber in mancher hinsicht schlichter?. 
(Arduino IDE akzeptiert ja sogar c befehle, für die ySteuerung von 
Interrupts oder das bedienen der Zähler und register. und benutzt den 
gcc-compiler)

von Vn N. (wefwef_s)


Lesenswert?

Sieht aus wie C, riecht wie C, kompiliert wie C, also, was wird es sein?

: Bearbeitet durch User
von Lothar S. (loeti)


Lesenswert?

> Irgendwie wie C aber in mancher hinsicht schlichter?.

Zitat:
"Arduino board in C?

In fact, you already are; the Arduino language is merely a set of C/C++ 
functions that can be called from your code."

Siehe:
http://arduino.cc/en/Main/FAQ#.Uytp-VLQfIU

von Manuel X. (Gast)


Lesenswert?

Lothar S. schrieb:
>> Irgendwie wie C aber in mancher hinsicht schlichter?.
>
> Zitat:
> "Arduino board in C?
>
> In fact, you already are; the Arduino language is merely a set of C/C++
> functions that can be called from your code."
>
> Siehe:
> http://arduino.cc/en/Main/FAQ#.Uytp-VLQfIU

Wenn schon zitieren dann bitte komplett:
1
Can I program the Arduino board in C?
2
3
In fact, you already are; the Arduino language is merely a set of C/C++ 
4
functions that can be called from your code. Your sketch undergoes minor 
5
changes (e.g. automatic generation of function prototypes) and then is 
6
passed directly to a C/C++ compiler (avr-g++). All standard C and C++ 
7
constructs supported by avr-g++ should work in Arduino. For more details, 
8
see the page on the Arduino build process.

Letztendlich ist Arduino C/C++ durch die Libs aber stark 
"Anfängertauglich" gemacht. Wenn man denn aber will kann man die Arduino 
Hardware auch in Assembler programmieren. Ist schliesslich auch nur ein 
Board mit nem Atmega drauf.

Die Vereinfachung rührt daher das der Ursprungsgedanke der Arduino 
Plattform der war, Künstlern und Kreativen den Einstieg in interaktive 
Werke zu Erleichtern die eben keine Erfahrung in C/C++ oder überhaupt in 
Elektronik haben.

Letztendlich macht Arduino aber nur eins, Den "Programmierstil" versauen 
=)

von Borislav B. (boris_b)


Lesenswert?

Manuel Z. schrieb:
> Letztendlich macht Arduino aber nur eins, Den "Programmierstil" versauen

Tut er das? Ist doch weitestgehend handelsübliches C++. Wo findet denn 
da die Versauung statt?

von Chris M. (yoblid) Benutzerseite


Lesenswert?

Boris P. schrieb:
> Manuel Z. schrieb:
>> Letztendlich macht Arduino aber nur eins, Den "Programmierstil" versauen
>
> Tut er das? Ist doch weitestgehend handelsübliches C++. Wo findet denn
> da die Versauung statt?

Na, nirgends.
Auch in C/C++ und allerlei anderen Programmiersprachen werden reichlich 
Libs genutzt, weil man nicht immer das Rad von vorne erfinden möchte.

von Pink S. (pinkshell)


Lesenswert?

Versaut finde ich, dass es kein main() mehr gibt, sondern statt dessen 
setup() und loop(). Dadurch verlernt der Programmierer solche Sachen wie 
while(true) oder for (;;)

von Borislav B. (boris_b)


Lesenswert?

Pink Shell schrieb:
> Versaut finde ich, dass es kein main() mehr gibt, sondern statt dessen
> setup() und loop(). Dadurch verlernt der Programmierer solche Sachen wie
> while(true) oder for (;;)

^^ ist nicht dein Ernst, oder?

von Pink S. (pinkshell)


Lesenswert?

Boris P. schrieb:
> nicht dein Ernst

Ne natürlich nicht. Nächstes Mal mach ich ein Smiley dahinter :-)

von Borislav B. (boris_b)


Lesenswert?

Pink Shell schrieb:
> Ne natürlich nicht. Nächstes Mal mach ich ein Smiley dahinter :-)

Na dann ists ja gut ;-)
Gibt ja son paar Spezialisten hier im Forum, die tatsächlich so drauf 
sind...

von Manuel X. (Gast)


Lesenswert?

Wenn mal einer der keine Ahnung hat Geschmack an dem pinmode, 
digitalwrite analogwrite etc. mist gefunden hat, kann man ihm das schwer 
wieder austreiben.

Ich wollte damit darauf hinaus das es sinnvolleres für Anfänger gibt als 
Arduino.

Ich finde es zumindest etwas mühsam wenn dann Anfragen kommen warum dies 
und das nicht funktioniert wenn dann doch mal über den Arduino 
Tellerrand geschaut wird.

von Jan R. (Gast)


Lesenswert?

Manuel Z. schrieb:
> Wenn mal einer der keine Ahnung hat Geschmack an dem pinmode,
> digitalwrite analogwrite etc. mist gefunden hat, kann man ihm das schwer
> wieder austreiben.
Ich glaube nicht das jeder der Arduino benutzt keine Ahnung hat.
Ich persönlich benutze beides AVR mit C/C++
Aber in manchen Anwendungen finde ich auch an der Arduino Plattform 
gefallen, toll finde ich ach, dass ich direkt in der Arduinoumgebung 
auch normale C/C++ oder Sogar Assembler neben kann.

>
> Ich wollte damit darauf hinaus das es sinnvolleres für Anfänger gibt als
> Arduino.
Kommt darauf an, inwiefern man es benötigt, wenn jemand schnell ein 
Aufwendiges Projekt machen möchte, ist er mit Arduino unter umständen 
schneller.

von A. B. (sfalbuer)


Lesenswert?

Für viele Nutzer ist Arduino nur ein Werkzeugkasten um 
Schnittstellenprobleme zu lösen oder ohne viel Ahnung und Aufwand Ideen 
zu realsieren.
Wenn ich eigentlich Malerei oder sowas studiere aber für einen 
speziellen Fall/Projekt eine LED zum blinken bringen will interessieren 
mich Bitmasken herzlich wenig, sondern ich bin dankbar um digitalwrite 
und so einen Kram weil die LED dann schneller blinkt und ich gar nicht 
mehr als dies möchte.

Dann bleibt mehr Zeit zur Lektüre! und für andere tolle dinge.

von Mike M. (mikeii)


Lesenswert?

Mich nervt, dass viele meinen, nur weil sie einen Arduino haben, können 
sie damit alles. So nach dem Motto Ausbildung oder E-Technik Studium 
machen ja nur Vollidioten. Das was die können kann ich schon lang, 
etc...

Was ich auch schlimm finde ist die Arduino IDE. Der Code Editor ist ein 
graus... Allein schon die Schriftart, die absolut bescheuerte Einrückung 
die nicht funktioniert und augenscheinlich an nichts ausgerichtet ist. 
Drückt man Tab, springt der Cursor überall hin, nur nicht da hin wo er 
soll.
Unter Linux kackt das Ding auch noch regelmäßig ab, under Windows gehts.

Und da sind noch andere Dinge...

von Chris M. (yoblid) Benutzerseite


Lesenswert?

Mike Mike schrieb:
> Mich nervt, dass viele meinen, nur weil sie einen Arduino haben, können
> sie damit alles. So nach dem Motto Ausbildung oder E-Technik Studium
> machen ja nur Vollidioten. Das was die können kann ich schon lang,
> etc...

Ich verstehe diese Einstellung nicht.
Insbesondere die, die eine E-Technik Ausbildung oder ein Studium 
absolviert haben, sollten doch stolz darauf sein, dass jemand aus ihren 
Reihen so etwas wie einen Arduino geschaffen hat und man nun kein 
Studium mehr braucht, um einen Mikrocontroller zu programmieren.
Ist nicht das die Aufgabe eines Ingenieurs? Dinge zu schaffen, die das 
Leben vereinfachen?

Wer die Frage mit "nein" beantwortet, darf sich selbst fragen, warum er 
hier im Forum rumtönt, ohne vorher Lochkarten zu stanzen ;-)

von Mike M. (mikeii)


Lesenswert?

Du hast es nicht richtig gelesen. Manche stellen sich mit einem E 
Techniker gleich, weil sie meinen mit dem Arduino können Sie alles was 
der E Techniker kann.

von Lothar S. (loeti)


Lesenswert?

> Letztendlich macht Arduino aber nur eins, Den "Programmierstil" versauen

Bist Du die Inquisition der C++ Programmierer?

von Le X. (lex_91)


Lesenswert?

Mike Mike schrieb:
> Mich nervt, dass viele meinen, nur weil sie einen Arduino haben, können
> sie damit alles. So nach dem Motto Ausbildung oder E-Technik Studium
> machen ja nur Vollidioten. Das was die können kann ich schon lang,
> etc...

Ah, das ist also dein Problem. Du gönnst es anderen nicht dass sie 
relativ schnell und einfach ihre Projekte umsetzen können. Die sollen 
gefälligst auch in die selben Probleme reinlaufen die du damals hattest, 
und Monate an Einarbeitung verplempern. Echt unfair, mit diesem Arduino 
Zeugs. Und deine schönen, selbstgeschriebenen Libs, die du dir über die 
Jahre erstellt hast, die kriegt ein Arduino-Anfänger alle schon 
"geschenkt" und kann auf einmal das gleiche machen wie du...

Mike Mike schrieb:
> Du hast es nicht richtig gelesen. Manche stellen sich mit einem E
> Techniker gleich, weil sie meinen mit dem Arduino können Sie alles was
> der E Techniker kann.

Bittebittebitte zeig mir ein Beispiel hier im Forum wo das der Fall ist. 
Mich würds interessieren, wirklich!


Manuel Z. schrieb:
> Wenn mal einer der keine Ahnung hat Geschmack an dem pinmode,
> digitalwrite analogwrite etc. mist gefunden hat, kann man ihm das schwer
> wieder austreiben.

Sind doch sehr schöne Funktionen! Nur leider recht unperformant.
Ich selbst würde auch gerne so saubere Schnittstellen verwenden, dann 
kann man seine Libs/Module so richtig schön von der Hardware abtrahiert 
entwickeln. Leider will man die Laufzeiteinbußen selten haben. Zum 
Schalten einer LED alle heilige Zeit mags noch OK sein, aber eine 
Soft-PWM wird man damit eher nicht hinkriegen.

von Tom K. (ez81)


Lesenswert?

Manuel Z. schrieb:
> Letztendlich macht Arduino aber nur eins, Den "Programmierstil" versauen
Ja. Libraries resultieren in bösen Dingen wie Abstraktion, was dazu 
führt, dass E-Techniker den Code nicht mehr verstehen.

Alexander "B" schrieb:
> Wenn ich eigentlich Malerei oder sowas studiere aber für einen
> speziellen Fall/Projekt eine LED zum blinken bringen will interessieren
> mich Bitmasken herzlich wenig, sondern ich bin dankbar um digitalwrite
> und so einen Kram weil die LED dann schneller blinkt und ich gar nicht
> mehr als dies möchte.
Auch als Nicht-Künstler finde ich das Bitgefummel nervig. In 90% aller 
Fälle will ich (auch ohne Arduino) einfach sowas:
1
set_timer_1(MODE_CTC, 12500/*µs*/);
In Spezialfällen sehe ich gerne jedes Register und Bit einzeln nach, 
aber bei solchen Trivialitäten ist mir meine Zeit zu schade dafür.


le x. schrieb:
> Leider will man die Laufzeiteinbußen selten haben.
Ich würde behaupten, dass man die zus. Laufzeit zwar selten haben will, 
dies aber meistens nur ein diffuses (und unbegründetes) 
Optimierungsbedarfsgefühl ist.

von Mike M. (mikeii)


Lesenswert?

@le x
ne hab ich nicht nötig mich vor Leuten recht zu fertigen, die mir 
irgendwelche WWörter in dem Mund legen wollen. Du verdrehst alles was 
ich sage, als ob du bei der Presse wärst

von Manuel X. (Gast)


Lesenswert?

Lothar S. schrieb:
>> Letztendlich macht Arduino aber nur eins, Den "Programmierstil" versauen
>
> Bist Du die Inquisition der C++ Programmierer?

Na auf dich hab ich ja nur gewartet. Gerade kein anderer Thread zum 
zutexten da?



Tom K. schrieb:
> Manuel Z. schrieb:
>> Letztendlich macht Arduino aber nur eins, Den "Programmierstil" versauen
> Ja. Libraries resultieren in bösen Dingen wie Abstraktion, was dazu
> führt, dass E-Techniker den Code nicht mehr verstehen.
>
Es geht nicht um die Libs an sich, sondern eben darum das viele Arduino 
Nutzer eben der Ansicht sind "so gehörts" und sich einen Dreck um die 
dahinter stehenden Register etc. scheren... Im Prinzip also Null Ahnung 
haben was sie da eigentlich machen, bei Problemen aber der Meinung sind 
alles zu wissen.

Insofern ma es evtl. sein das "den Programmierstil versauen" schlecht 
formuliert ist, in der Kernaussage stimmt es aber..

Arduino an sich ist eine feine Sache, eben weil man - wie oben schon wer 
erwähnt hat - z.B. auch mit ASM drauf kann wenn man denn will. Und weil 
es eben - wofür es ja gesschaffen wurde - E-Technik fremden die Nutzung 
von uC erleichtert etc.
Aber die IDE und die libs finde ich schlecht und eben das versaut.

Letztendlich die Entscheidung eines jeden selbst, aber wenn man den 20en 
Studenten gehört hat wie toll das doch alles ist und as es nur noch ein 
kleines Problem gibt.. naja.. egal :)

von Jan R. (Gast)


Lesenswert?

A. B. schrieb:
> Für viele Nutzer ist Arduino nur ein Werkzeugkasten um
> Schnittstellenprobleme zu lösen oder ohne viel Ahnung und Aufwand Ideen
> zu realsieren.
> Wenn ich eigentlich Malerei oder sowas studiere aber für einen
> speziellen Fall/Projekt eine LED zum blinken bringen will interessieren
> mich Bitmasken herzlich wenig, sondern ich bin dankbar um digitalwrite
> und so einen Kram weil die LED dann schneller blinkt und ich gar nicht
> mehr als dies möchte.
>
> Dann bleibt mehr Zeit zur Lektüre! und für andere tolle dinge.

Seitwann, braucht man ein vollständiges etechnik studium um einen uC zu 
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.