Hi,
ich versuche gerade eine kleine Ansteuerung für LEDs, eigentlich nichts
wildes. Da sich aber recht viele Muster ergeben, sollen diese alle mit
__flash abgelegt werden.
Die Struktur an sich habe ich mir folgendermaßen gedacht:
1
light_patterns[] = [
2
{
3
light_pattern.nr_elements => int,
4
light_pattern.rotate => int,
5
light_pattern.lp_elements => [
6
&pattern_element_1
7
&pattern_element_2,
8
&pattern_element_3
9
]
10
},
11
{
12
light_pattern.nr_elements => int,
13
light_pattern.rotate => int,
14
light_pattern.lp_elements => [
15
&pattern_element_2,
16
&pattern_element_4,
17
&pattern_element_2
18
…
19
]
20
}
21
…
22
]
23
24
pattern_element_1 = …
25
pattern_element_2 = …
26
…
Also grob gesagt ein Array, welches die verschiedenen Muster enthält.
Diese bestehen jeweils aus dem Parameter "rotate" sowie einem Array aus
Pointern auf die einzelnen "Leuchtzustände" (da sich diese in
verschiedenen Pattern wiederholen können) sowie der Anzahl der
pattern_element, da diese nicht gleich sein müssen.
Nun habe ich versucht das ganze von innen nach außen aufzubauen, aber
ich bekomme die einzelnen pattern_element nicht sauber ins Array im
light_pattern. Nach diversem ratlosen rumprobieren stehe ich gerade da
mit:
patterns.h:26:1: warning: (near initialization for ‘lp_dualflash.lp_elements’) [enabled by default]
Daher war mein erster Verdacht, dass da irgendeine Typüberprüfung
zuschlägt bezüglich Pointer auf einzelnes Element oder Arrayanfang,
weshalb ich die [] im struct ergänzte.
Insofern schonmal ein großes Danke für deine Hilfe!
Wo ich es so betrachte, eigentlich müsste der Schritt über
lp_elements_dualflash[]
doch auch umgehbar sein, dass ich direkt im Struct das Pointerarray
anstatt dem Pointer aufs Pointerarray habe.
EDIT: Quatsch, das hat ja keine feste Länge.