in bars steht dann nur ein zahlenwert von 1-11 welcher mit 15 multipliziert werden soll.
jetzt macht aber genau dieses Multiplizieren Probleme, und ich weis leider nicht wie ich das in den griff bekommen soll. Jemand eine lösung?
fehlermeldung:
Arduino: 1.6.6 (Windows 7), Board: "Arduino Nano, ATmega328"
ArtnetNanoWs2812ohnedisplay:32: error: array bound is not an integer constant before ']' token
bool universesReceived[maxUniverses];
^
D:\dokumente\Arduino\ArtnetNanoWs2812ohnedisplay\ArtnetNanoWs2812ohnedisplay.ino: In function 'void onDmxFrame(uint16_t, uint16_t, uint8_t, uint8_t*)':
ArtnetNanoWs2812ohnedisplay:159: error: 'universesReceived' was not declared in this scope
universesReceived[universe - startUniverse] = 1;
^
ArtnetNanoWs2812ohnedisplay:163: error: 'universesReceived' was not declared in this scope
if (universesReceived[i] == 0)
^
ArtnetNanoWs2812ohnedisplay:184: error: 'universesReceived' was not declared in this scope
memset(universesReceived, 0, maxUniverses);
^
exit status 1
array bound is not an integer constant before ']' token
Die Größe von globalen statischen Arrays muss zur Compile-Zeit bekannt sein (lokale Arrays können in avr gcc dank einer GNU Erweiterung auch erst zur Laufzeit fest stehen)
Wenn das erst zur Laufzeit bekannt ist musst du das Array dynamisch anlegen duckt sich
Das wird genau angemeckert:
array bound is not an integer constant before ']' token
Ein Punkt bei der Sache ist übrigens dass man das auch in zwei Schritten machen kann. Also man kann global nur den Zeiger deklarieren und den Speicher dann in einer Funktion anlegen.