Arduino - Struktur initialisieren klappt nicht

Gast #5188466
Lesenswert?

Hi ihr!

Ich habe eine Struktur definiert, um die globalen Variablen etwas 
aufzuräumen:

1
typedef struct {
2
  Servo servo;
3
  unsigned int   pin;
4
  unsigned int   angle_min;
5
  unsigned int   angle_max;
6
}t_servo;

Wenn ich jetzt einen Servo konkret anlegen will z.B.:
1
t_servo servo1 = {.pin=5, .angle_min=50, .angle_max=110};
Arduino: 1.8.5 (Windows 10), Board: "Arduino Nano, ATmega328P"
sorry, unimplemented: non-trivial designated initializers not supported

t_servo servo1 = {.pin=5, .angle_min=50, .angle_max=110};

                                                        ^

Tja und darum frage ich euch, was ich da falsch mache...eigentlich 
wollte ich nachher dann über weitermachen
1
static void ServoInit(t_servo* s) 
2
{
3
  s->servo.attach(s->pin);
4
  s->servo.write(s->angle_min);
5
};
Gast #5188515
Lesenswert?

Vielen Dank!

auch wenn der C-Lehrer sich jetzt (hoffentlich) selber dämlich vorkommt: 
postet doch einfach nicht, wenn ihr nichts zu sagen habt. Das würde den 
Signal-Rauschabstand im Forum wirklich verbessern. Nicht jeder der eine 
Arduino Frage hat ist doch zwingend ein Idiot...

c++ kann ich leider nicht, anscheinend sollte ich mich aber damit 
beschäftigen, wenn ich etwas mit Arduino spielen möchte.
Ich habe das System letzte Woche entdeckt und es gefällt mir sehr gut, 
weil man so gut damit spielen kann. Die zeitintensiven Dinge wie 
low-Level Treiber für Sensoren etc. ja breit verfügbar und Zeit ist ja 
in der Freizeit immer zu wenig.
Gast #5188738
Lesenswert?

Klar; Nur auf welche Beiträge trifft das nicht zu. In meinen Augen ist 
ein Forum wie das hier genau für solche Fragen wie die, die ich stellte 
da. Hier ist doch kein Marktplatz der Nobelpreisträger.

Was wäre denn deinem Anspruch gerecht geworden? In welchem Foren fühlst 
du dich wohl? Vielleicht lohnt es da mal rein zu gucken.
Ich bitte ernsthaft um Antwort!
#5188812
Lesenswert?

Etwas Signal im Rauschen (ergänzend zu Rufus):
Was du machen möchtest sind "Designated Initializers", siehe 
https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html. Die gibts in 
C++ aber nicht.

Und du brauchst auch kein typedef in C++ und könntest überlegen, einen 
Constructor für die struct (ja, das geht) zu erstellen, siehe z.B. 
https://stackoverflow.com/questions/10859213/what-is-the-c-equivalent-to-cs-designated-initializers
Gast #5188844
Lesenswert?

Signal++;

Man kann theoretisch auch ein C- und H-File in der Ide mit "tabs" 
erzeugen und dann ins *.ino einbinden. Das kann man machen, wenn man die 
C-Files später sowieso auf andere Entwicklungssystem umziehen will.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren