Von C zu Arduino

Hallo,

Ich bin neu auf dem Gebiet, und ganz neu auf dem Forum. Da ich leider noch nicht das gefunden habe was ich suche, vielleicht liegt es nur daran das mir die Begrifflichkeiten fehlen.

Zum Vorwissen, Ich hatte vor ein paar Jahren mal einen C Kurs für Mikrocontroller besucht.

Zum Problem, ich habe vor mein Programm in Bibliotheken zu organisieren, die aber gemeinsam eine “struct” Datenbank nutzen. Ich hatte aus Gewohnheit in “IAR” angefangen zu schreiben und zu debugen, da ich noch keine debug Umgebung für Arduino kenne.

Klappt auch irgendwann alles, also wieder ein wenig warm geworden, wollte ich denn sprung waren zur “IDE” und leider läuft es da nicht meh
Wie es aussieht liegt es an den übergaben, und hier hoffe ich auf eure Erfahrung und Hilfe :roll_eyes:

Wie bekomme ich Datenbanken übergeben? Oder habe ich generell alles Falsch gemacht? Wenn Ja bitte scheibt so dass ich nicht gleich nach hinten umfalle :grin:

Gruß & Danke
Halmi

blinker.c (1.26 KB)

blinker.h (313 Bytes)

debugp.c (2.74 KB)

debugp.h (76 Bytes)

fernlicht.c (1.12 KB)

fernlicht.h (222 Bytes)

light_front.c (17 Bytes)

light_front.h (1.43 KB)

main.c (1.38 KB)

main.h (47 Bytes)

1.) Arduino wird in C++ programmiert. Nicht in C
2.) Das sind keine “Datenbanken”. Ein struct ist ein Datentyp. In C++ ist es fast identisch mit Klassen

Serenifly: 1.) Arduino wird in C++ programmiert. Nicht in C 2.) Das sind keine "Datenbanken". Ein struct ist ein Datentyp. In C++ ist es fast identisch mit Klassen

Da C++ eine Obermenge von C ist, kann man durchaus in C programmieren. Wenn man „nur“ in C programmieren kann, kann man auch damit Code schreiben, der ohne Fehler und Warnungen kompiliert.

Ein struct ist wie eine Klasse ohne Methoden/Funktionen.

Gruß

Gregor

Da C++ eine Obermenge von C ist, kann man durchaus in C programmieren.

Was aber etwas sinnfrei ist. Schon durch die Arduino API bekommt man es automatisch mit C++ zu tun

Ein struct ist wie eine Klasse ohne Methoden/Funktionen.

In C. In C++ ist der Unterschied dass die Elemente einer Struktur automatisch public sind. Aber Strukturen können auch Konstruktoren oder Methoden enthalten

Serenifly: Was aber etwas sinnfrei ist.

Das kann man unterschiedlich sehen. Man muss nicht zusätzlich C++ lernen, um etwas mit einem Arduino anfangen zu können.

Gruß

Gregor

Ich hatte aus Gewohnheit in "IAR" angefangen zu schreiben

Am einfachsten fängst du möglichst unbefangen nochmal neu an, guckst dir Beispiele an, und erfreust dich an den Bequemlichkeiten die dir die IDE bietet, sowie an den Millionen von Sachen, die du heutzutage im Internet findest.

Wenn du deine .cpp Dateien stattdessen .ino nennst, macht die IDE ein bisschen HokusPokus für dich, so dass du einige der .h Dateien gar nicht brauchst. Kannst dein Programm auf mehrere Dateien aufteilen, und auch mit .cpp / .h Dateien kombinieren. Ob du das Gesamtprojekt nun als mehrere Bibilotheken siehst oder sonstwie modularisierst, bleibt dir überlassen. Dass du neben den Arduino-Objekten auch noch ein bisschen C++ kennen lernst, wird sich nicht vermeiden lassen.

Das musst du anfangs nicht mögen, evtl. läufst du sogar in Fallen, die dir ohne die IDE erspart geblieben wären, aber egal. Wenn es dir auf Dauer wirklich zuwider bleibt, man kann atmegas auch ohne "Arduino" programmieren, da wärst du hier nur etwas im falschen Forum.

Wenn du hier bleiben willst: Viel Spaß und Herzlich Willkommen !