Speicherprobleme

Was mich erstaunt ist, wie gut der Compiler konstante Indexe optimiert, so dass myjaggedarray[ 2 ][ i ] eine gültige PROGMEM Adresse ist.

Zweidimensionale Arrays und Arrays aus Pointern auseinanderzuhalten ist schon schwer genug, wenn die Pointer dann auch noch selbst im Flash liegen und erstmal mit pgm_read_word oder so geholt werden müssten ( was hier gefehlt hat ), wird es richtig knifflig. Und wenn es dann beim MEGA2560 evtl. noch das richtige 64kB Segment sein muss, wäre ich noch vorsichtiger...

Mein theoretischer Tip:

  • Entweder zweidimensionales Array ( mit Verschnitt )
  • Oder die Pointer auf PROGMEM im RAM halten ( Bei einer Handvoll Melodien vertretbar )
  • Oder genau testen, was man tut.

:wink: