Wie kann ich ein Arduino in reinem C programmieren?


7

Ich bin ein Anfänger und möchte AVR C / C ++ lernen. Kann ich das mit einem Arduino machen? (Ich frage dies, weil ich bereits eine habe).

Wenn ja, kann mir jemand sagen, mit welcher IDE ich Code in reinem C / C ++ schreiben und ihn dann auf den Atmega328P auf dem Arduino flashen kann? Oder sollte ich stattdessen einen AVR und einen Programmierer bekommen?

Ich habe im ganzen Internet gesucht und bin wirklich verwirrt von der ganzen Terminologie. Könnte mir jemand das erklären?


1
Um den 328 zu programmieren, müssen Sie meines Erachtens atmel studio installieren, um Ihren Code zu kompilieren, und dann den Befehlszeilenbefehl avrdude verwenden, um Ihren kompilierten Code auf das Arduino zu setzen.
Treesrule14

@ Treesrule14 das ist eine Möglichkeit, aber nicht die einzige, also ist es falsch zu sagen, dass es notwendig ist. Wenn die Arduino IDE installiert ist, ist dies auch der avr-gcc-Compiler, von dem er abhängt.
Chris Stratton

@ Treesrule14 Ich habe das atmel Studio installiert. Ich kann einfach keine Ressourcen finden, die mir helfen könnten, ein Programm mit einem Bootloader (ohne Programmierer) auf den Chip des Arduino zu flashen. Ist das überhaupt möglich?
Azrael93

Ich glaube, Sie brauchen einen Programmierer. : (
Treesrule14

2
Sie benötigen keine IDE. Sie können mit der mit Arduino gelieferten Toolchain kompilieren und hochladen. Schauen Sie sich zum Beispiel Arduino.mk an.
Hobbs

Antworten:


3

Ja, holen Sie sich stattdessen einen AVR-Programmierer.

1) Sie können Ihr Arduino-Board mit avrdude / avr-gcc flashen . Installieren Sie diese Tools, suchen Sie das Datenblatt von atmega328 (google it), verwenden Sie die Pinbelegung der Karte, um eine Verbindung zu Ihrem Programmierer (stk500v2 / ISP) und voila herzustellen!

2) Denken Sie daran, dass Sie durch "manuelles" Flashen Ihrer Atmosphäre auf dem Arduino-Board den Bootloader entfernen, der zum Laden Ihrer Skizzen aus der ARDUINO IDE benötigt wird.

3) Verwenden Sie Ihre bevorzugte C / C ++ - IDE


1
Sie sollten in der Lage sein, den Bootloader für das Arduino zu finden und erneut zu flashen. Schauen Sie hier arduino.cc/en/Hacking/Bootloader?from=Tutorial.Bootloader
Treesrule14

Nein! Sie benötigen keinen Programmierer oder müssen den Bootloader entfernen. Der Arduino-Bootloader ist nicht von der IDE oder den Bibliotheken abhängig - Sie können ihn mit eigenständigen C-Programmen genauso frei verwenden wie mit Arduino-Skizzen. Dies ist nicht nur billiger, sondern ermöglicht es Ihnen auch, dasselbe Board für beide Entwicklungsstile ohne Konfigurationsänderungen zu verwenden.
Chris Stratton

Der Autor wollte AVR in reinem C lernen. Er fragte nicht - hey Leute, wie man mit Arduino IDE spielt oder so. aber wie man die atmega an bord wiederverwendet, hat er schon.
Soerium

@ ChrisStratton, da Sie mit den anderen Antworten nicht einverstanden sind Senden Sie bitte eine Antwort
Treesrule14

2

Wenn Sie ein Anfänger sind, empfehle ich Ihnen, C in die Arduino IDE zu schreiben. Die Bibliotheken sind sehr nützlich und ich denke, dass die Arduino / Wiring / Processing-Umgebung alle Ihre Anforderungen abdeckt.

Schauen Sie sich die Lightblue Bean ( http://punchthrough.com/bean/ ) an, die ein gutes Beispiel für die Leistungsfähigkeit dieser Plattform ist. Selbst erfahrene Embedded-Programmierer können es verwenden, da auf das zugrunde liegende Register weiterhin zugegriffen werden kann.

Ich programmiere jetzt auf dem Ti MSP430, und obwohl ich die Möglichkeiten einschätzen kann, vermisse ich die Einfachheit von Arduino; viel einfacher mit Arduino zu beginnen.

Gehen Sie zu http://arduino.cc/en/main/software , um die Version 1.0.6 herunterzuladen. IDE-Software, schließen Sie Ihr Arduino an, gehen Sie zu Tools-> Board, um Ihr Arduino auszuwählen, und wählen Sie den entsprechenden "tty" -Port unter Tools-> Serial_Port aus. Dann in reinem C schreiben und herunterladen. Die IDE enthält unzählige Beispiele.


2

Ein Arduino ist in C / C ++ programmiert. Es gibt ein weit verbreitetes Missverständnis, dass Arduino eine eigene Sprache hat. Siehe diesen Link C ++ vs. The Arduino Language? für eine vollständige Diskussion über Arduino als C / C ++ und die Vereinfachungen, die Arduino bietet. Außerdem können Sie hier den Arduino-Kerncode sehen .

Von der Arduino-Website:

Kann ich das Arduino Board in C programmieren?
In der Tat sind Sie bereits; Die Arduino-Sprache ist lediglich eine Reihe von C / C ++ - Funktionen, die von Ihrem Code aus aufgerufen werden können. Ihre Skizze wird geringfügig geändert (z. B. automatische Generierung von Funktionsprototypen) und dann direkt an einen C / C ++ - Compiler (avr-g ++) übergeben. Alle von avr-g ++ unterstützten Standard-C- und C ++ - Konstrukte sollten in Arduino funktionieren. Weitere Informationen finden Sie auf der Seite zum Arduino-Erstellungsprozess .

Arduino bietet eine einfache Lernkurve für Anfänger bis hin zu Experten. Laden Sie einfach die neueste Arduino IDE herunter , installieren Sie sie und genießen Sie es.


Ein weiteres häufiges Missverständnis ist, dass C eine Teilmenge von C ++ ist. Die Arduino-Kernbibliothek ist in C ++ geschrieben, daher ist es unmöglich, mit ihr in C zu programmieren.
Dmitry Grigoryev
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.