Maximale Array-Größe

Weil ich jetzt selbst betroffen bin, habe ich die aktuellen Array-Grenzen ausgetestet:

(BT an) bedeutet Bluetooth Grundeinstellung (Schalter links=aus)
(BT aus) bedeutet Bluetooth manuell bei Bedarf laden (Schalter grün) = mehr freier Speicher
(+) bedeutet funktioniert
(-) bedeutet stürzt ab (LED Matrix blitzt auf)

  1. Die Grenze liegt bei 32 Array-Elementen (+).
  2. Bei 33 Elementen stürzt Calliope ab (-), wenn (BT an).
  • Gilt für 33 number Elemente im Array.
  • Gilt für 33 string Elemente. Die Länge der Strings ist egal, passiert auch bei leeren Strings.
  • Gilt für Calliope 1.3 und 2.1.
  1. Arrays mit 33 Elementen (+) funktionieren aber, wenn (BT aus).
  • Gilt für Calliope 1.3 und 2.1.

nur Calliope 1.3

  1. Es sind mehrere Arrays mit je 32 Elementen möglich.
  • Mit (BT an) funktionieren 4 Arrays je 32 Elemente (+), beim 5. stürzt es ab (-).
  • Mit (BT aus) funktionieren 10 Arrays je 32 Elemente (+). Mehr habe ich nicht getestet.

nur Calliope 2.1 (Erweiterung mini2 geladen)

  1. Es sind mehrere Arrays mit je 32 Elementen möglich.
  • 10 Arrays je 32 Elemente (+) funktionieren unabhängig von Bluetooth. Mehr habe ich nicht getestet.
  • 1 Array mit 33 Elementen funktioniert trotzdem nur, wenn (BT aus).

1.3 (BT an) 1x33 (-)
1.3 (BT an) 4x32 (+) 5x32 (-)
1.3 (BT aus) 1x33 (+)
1.3 (BT aus) 10x32 (+)
2.1 (BT an) 1x33 (-)
2.1 (BT an) 10x32 (+)
2.1 (BT aus) 1x33 (+)
2.1 (BT aus) 10x32 (+)

Logisch ist, dass die Anzahl der Arrays mit je 32 Elementen zunimmt, je mehr Speicher frei ist. Entweder durch (BT aus) oder durch Calliope 2.x oder beides. Der Absturz passiert nur bei 1.3 (BT an) beim 5. Array mit 32 Elementen.

Unlogisch ist, dass ein einziges Array mit 33 Elementen immer abstürzt, wenn (BT an). Das kann nicht daran liegen dass der Speicher voll wäre. Wenn die Arrays im Datenspeicher liegen, der bei Calliope 2.x verdoppelt wurde, ist das umso unverständlicher.

Das Test Programm ist hier:
Knopf A lädt in 10 verschiedene Variablen je 1 Array mit 32 Elementen (number).
Knopf B lädt 1 Array mit 33 Elementen (number).
Knopf A+B lädt 1 Array mit 33 Elementen (string).

Ich wünsche mir, dass die Grenze von 32 Elementen im Array jedenfalls bei Calliope 2.1 aufgehoben wird, weil das nicht mit fehlendem Speicherplatz zu begründen ist.
(Im Simulator funktioniert es immer.)

Lutz

3 „Gefällt mir“