ich musste den Code jetzt testweise für den ESP8266 "downsizen", offenbar hat der bei weitem zu wenig RAM für heap.
In meiner union-Def. war offenbar auch ein Fehler, ich habe deinen Code mal für mich angepasst:
- - - Aktualisiert - - -Code:#define LINE 20 #define ROW 10 void setup() { Serial.begin(115200); delay(1000); Serial.println(); Serial.println("Serial() started"); float arraystat[LINE][ROW ]; union { float *mem; float arraydyn[LINE][ROW ]; // 10*20*4=800 bytes } a; a.mem = (float*) malloc(LINE * ROW * sizeof(float)); for (int i = 0; i < LINE; i++) { for (int j = 0; j < ROW ; j++) { arraystat[i][j]=i*(j*1000); } } for (int i = 0; i < LINE; i++) { for (int j = 0; j < ROW ; j++) { a.arraydyn[i][j] = arraystat[i][j] * 0.01; } } for (int i = 0; i < LINE; i++) { yield(); for (int j = 0; j < ROW ; j++) { Serial.println (a.arraydyn[i][j]); } } } void loop() { }
Sieht gut aus! (edit: zumindest auf den 1. Blick laut Serial.print)
Jetzt wäre nur noch die Frage, ob's auch 2-dim ohne unions geht...







Zitieren

Lesezeichen