Hallo,
ich habe in einer einen uint8 2D-Array, worin Daten gespeichert werden
sollen. Damit rufe ich eine andere Funktion auf, welches mir parameter
in einem Struct speichert. Dazu übergebe ich auch die Adresse und länge
(FLASH).
Die Funktion, die Daten aus dem FLASH liest, möchte aber ein 1D-Array in
sint8 haben.
im Struct habe ich dann
1 | typedef struct
|
2 | {
|
3 | sint16 adress;
|
4 | sint8 data[MAX_FLASH_READ_SIZE];
|
5 | sint8 length;
|
6 | void (*callback)(bool);
|
7 | }FLASH;
|
der Funktionsaufruf um den struct zu beschreiben ist
1 | readFlash(flashAddress, &flashData[0][0], 0x90, &flashCallback);
|
1 | void readFlash(uint16 adress, uint8* data, uint8 length, void(*callback)(bool)){
|
2 | flash.adress = (sint16)adress;
|
3 | flash.data = ????
|
4 | flash.length = (sint8) length;
|
5 | flash.callback = callback;
|
6 | }
|
mit flash.data möchte ich dann die Funktion aufrufen, die mir die daten
aus dem FLASH ausliest. In der callbackFunktion möchte ich die Daten
dann wieder im 2D-Array bearbeiten.
Doch leider habe ich absolut keine Ahnung, wie ich die Adresse von
flashData[0][0] an flash.data übergebe, damit ich in der
Callback-Funktion die Daten vom Flash im 2D-Array wieder bearbeiten kann
hatte gedacht
1 | flash.data = (sint8)&data;
|
da bekomme ich aber den error incompatible types in assignment