Hallo,
Ich komm einfach nicht weiter mit einem Pointer auf ein Array-Eintrag in
einem struct namens settings_t. Ich habe eine Funktion, die mir die
Daten aus dem Array im struct per SPI ausgeben soll. Und die erwartet
einen Pointer auf den Beginn der Daten im Array des Structs.
Hier ist das Struct:
1 | typedef struct {
|
2 | double steps_per_mm[3];
|
3 | uint8_t microsteps;
|
4 | uint8_t pulse_microseconds;
|
5 | double default_feed_rate;
|
6 | double default_seek_rate;
|
7 | uint8_t invert_mask;
|
8 | double mm_per_arc_segment;
|
9 | double acceleration;
|
10 | double junction_deviation;
|
11 | long DRVCTRL[3];
|
12 | long CHOPCONF[3];
|
13 | long SMARTEN[3];
|
14 | long SGCSCONF[3];
|
15 | long DRVCONF[3];
|
16 | } settings_t;
|
17 |
|
18 | extern settings_t settings;
|
Hier die Funktion welche den Pointer erwartet.
1 | void spi_write_data(char* source, char wr_bytes, char spi_cs)
|
Und so versuche ich sie momentan aufzurufen:
1 | spi_write_data(&settings.DRVCONF[0],5,CS_EXT);
|
Ich weiß das da irgendwas noch nicht stimmt, denn es kommt immer die
Warmung:
1 | ../spi.c:68: warning: passing argument 1 of 'spi_write_data' from incompatible pointer type
|
Wie deklariere/initialisiere ich den Pointer richtig? Bekomm es einfach
nicht hin. Ich lerne leider erst in "C" zu programmieren.
Wer kann mir weiterhelfen?
Steffen