Mehrdimensionales Array mit Makro füllen

Hallo,

ich habe ein Zweidimensionales Array, welches ich nicht bei der Definition mit Werten initialisieren kann. Das Array wird mit Maschinenparametern beschrieben. Welche Parameter das sind, wird durch die Auswahl des Maschinen-typs festgelegt.

Folgendes habe ich nun versucht, komme aber nicht weiter:

    #define FILL_UINT8_ARRAY(array,...) memcpy(array, (uint8_t []){__VA_ARGS__}, sizeof (array))

    switch(MachineType)
    {
        case 10:                                      
            FILL_UINT8_ARRAY(CURVE_DATA[0][1], {
            {14, 6 },
            {20, 20 },
            {25, 27 },
            {30, 30 },
            {38, 33 },
            {55, 35 },
            {76, 36 },
            {83, 37 },
            {90, 39 }
            });
          break;

Irgendwie kriege ich das nicht hin. Hoffe, ihr könnt helfen...

VG
Matze

Wieviele solche Arrays hast Du?
Schreibe die doch ins PROGMEM.
Beschreibe doch mal, was das werden soll.

Gruß Tommy

Wenn das nicht zur Kompilezeit passiert, helfen dir Makros sowieso nicht weiter.

Tipp:
Wenn man auf solche Probleme stößt, liegt der Fehler meistens 2 bis 5 Schritte vorher.

Hallo,

wenn die Daten je Maschinentyp bekannt und konstant sind, dann lege dir für jeden Typ einen kompletten Satz Arrays im Flash oder EEprom an. Zur Laufzeit wird dann entschieden je nach Maschinentyp welcher verwendet bzw. geladen wird. Ansonsten bitte mehr zum Problem schreiben, weniger zur aktuellen Lösung.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.