kurze Antwort:
ja, du kannst mit der Arduino IDE in C coden.
lange Antwort:
Die Arduino IDE benutzt C++, C ist mehr oder weniger nur eine Untermenge, und es werden grundsätzlich alle gängigen C und C++ Befehle, Syntax und Statements unterstützt.
Was du aber wissen musst: C/C++ auf Microprozessoren stellt grundsätzlich nicht alle Funktionen zur Verfügung, die auch C oder C++ auf "richtigen" Computern (mit Linux oder Windows) haben, es ist also IMMER ein eingeschränkter Befehlssatz, ganz unabhängig von Arduino oder Nicht-Arduino.
Denn C und C++ sind Library-basierte Sprachen, dabei ist die Zahl der wirklich fest vordefinierten Wörter sehr klein (bei C nur ca. 20), der Rest sind mehr oder weniger sog. Wrapper-Funktionen, die angepasst sind für die Zielhardware und die den Zugriff beim Schreiben vereinfachen sollen. Das macht auch Arduino so, es hat eigene Wrapper-Funktionen, die das Schreiben vereinfachen, und sie machen das Programmieren einfacher, weil man sich nicht um einzelne spezielle Prozessor-Besonderheiten kümmern muss.
Trotzdem kannst du immer den originalen C- oder C++ -Code schreiben, wenn dir das lieber ist.
Ein praktisches Beispiel:
wenn du eine Wartefunktion für 500 Millisekunden brauchst, schreibst du bei Arduino einfach
delay(500);
wie diese Funktion intern programmiert ist, braucht dich hier gar nicht zu interessieren, und tatsächlich ist das sogar recht kompliziert, wie das auf verschiedenen Boards intern umgesetzt wird, auf alle Details will ich hier gar nicht eingehen; es sind aber schon einige Zeilen in "ausführlichem echten C++ Code" dafür zu schreiben (u.U. auch mit Interrupts und no-ops etc.).
Genau so ist es auch mit anderen Arduino-Wrappern, die das Programmieren schlicht vereinfachen können (wenn man will, man muss es aber nicht unbedingt immer auch nutzen).
Großer Vorteil:
Dein Code läuft dann nicht nur auf nur 1 Prozessor (z.B. Atmel AVR), sondern optional auch auf vielen anderen, insb. größeren und leistungsfähigeren (SAMD21, SAMD51, ESP8266, ESP32), ohne dass du jedesmal die speziellen Prozessor-Eigenheiten wie z.B. Registernamen etc. beachten und umprogrammieren musst.
Lesezeichen