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)
> 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
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
=)
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?
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.
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 (;;)
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?
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...
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.
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.
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.
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...
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 ;-)
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.
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.
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.
@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
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 :)
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?