Programmieren - alles kontrollieren 4.936 Themen, 20.625 Beiträge

C++ Uebernahme von Daten aus einem Header in ein Array

copykiller / 22 Antworten / Flachansicht Nickles

Möchte die Daten aus der Datei OV.H auslesen und gewisses Parameter in ein Array übertragen.

Das Array sieht so aus:
myMsg.DATA[0]=0x40;
myMsg.DATA[1]=0x07;
myMsg.DATA[2]=0x20;
myMsg.DATA[3]=0x00;
myMsg.DATA[4]=0x00;
myMsg.DATA[5]=0x00;
myMsg.DATA[6]=0x00;
myMsg.DATA[7]=0x00;

Das OV sieht so aus:

struct ov_eintrag ov[MAX_OV_INDEX] =
{{0, 0, RO, 0, 0, 0, 0},
{0x2007, 0, RWZ, 2, 400, 3200, 2000}, //Maximalstrom
{0x2008, 0, RW, 2, 0xCFC0, 0xFFC0, 0xFFC0}, //Offset Iststrom 1
{0x2009, 0, RW, 2, 800, 1200, 1024}, //Korrektur Iststrom 1

möchte z.B. die Daten 0x2007 gesplittet ins Array [2](20) und [1](07)
die "0" in [3] und die "2000" also "0x7D0" in [5](07) und [4](D0).

Wie mach ich das am einfachsten????

Thx im Voraus

bei Antwort benachrichtigen
mr.escape copykiller „/ typedefs / struct ov_eintrag //Beschreibung eines OV-Eintrags im ROM unsigned...“
Optionen
int i;
i=1;//gibt den arrayindex an (im bsp. also von 0 bis mind. 3)
myMsg.DATA[1]=ov[i].index & 255;
myMsg.DATA[2]=(ov[i].index >>8) & 255;
//wenn index>0xffff dann gehen informationen verloren
myMsg.DATA[3]=ov[i].sub_index;
myMsg.DATA[4]=ov[i].def_wert & 255;
myMsg.DATA[5]=(ov[i].def_wert >>8) & 255;
//wenn def_wert>0xffff dann gehen informationen verloren

Je nach definition von myMsg.DATA könnten evtl. noch warnungen kommen (signed vs. unsigned).

mr.escape
"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen
mr.escape mr.escape