mehrdim arrays lassen sich nicht initialisieren ! :(

ich verzweifle langsam - nichts funktioniert! :frowning:

mehrdim arrays lassen sich nicht initialisieren !

#define mot0dir1 4
#define mot0dir2 5

#define mot1dir1 9
#define mot1dir2 10

long motenc[MAXMOTORS];
byte motdir[2][2]={ {0,mot0dir1}, {0,mot0dir2}, {1,mot1dir1}, {1,mot1dir2} }

Fehlermeldung:

Arduino: 1.5.6-r2 (Windows XP), Board: "Arduino Duemilanove or Diecimila, ATmega168"

pid002:49: error: too many initializers for 'byte [2][2]'

Du hast ein 2x2 Array und willst 4x2 Werte reinschreiben. Und dann wunderst du dich wieso das nicht geht?

Am besten bei sowas nur eine Dimension angeben. Der Compiler kann dann die Größe aus der Anzahl der Initialisierungs-Elemente selbst berechnen.

uups- war tatsächlich Quatsch!

schitte, ich will sie aber im Top vorintitialisieren, was kommt in welche 2er Gruppe ?

edit - ich hab's - die 2er-Untergruppen sind die Zeilen, und die stehen quasi untereinander!

Dimension in der ersten Klammer weglassen und schon passt es:

byte motdir[][2]={ {0,mot0dir1}, {0,mot0dir2}, {1,mot1dir1}, {1,mot1dir2} };

oder:

byte motdir[4][2]={ {0,mot0dir1}, {0,mot0dir2}, {1,mot1dir1}, {1,mot1dir2} };
/* 4 Zeilen 5 Spalten */
int Matrix[4][5] = { {10,20,30,40,50},
                     {15,25,35,45,55},
                     {20,30,40,50,60},
                     {25,35,45,55,65}};

ja, genau so, jetzt hab ichs auch gecheckt, danke :slight_smile: