Gast
#497745
WinAVR kann ja aufgrund der nur 2Byte großen Pointer nur bis zu 64K an ROM-Daten (also im Flash) addressieren. Daher packt er diese Daten ja auch an den Anfang. Jetzt habe ich aber viele große Datenbereiche, die insg. über 64K groß sind. Wie komme ich jetzt da ran? Normal arbeite ich mit: Datenbereich: const unsigned int Datenbereich1[12000] PROGMEM = { ................} const unsigned int Datenbereich2[9876] PROGMEM = { ................} .... const prog_uint16_t *Datenblock; und greife dann mit "pgm_read_byte" darauf zu. Aber alles ab einem Addressbereich >64K fängt wieder bei 0 an (d.h. an die Daten hinter 64K komme ich so nicht ran). Was kann ich da nun machen? Gibt es einen Trick, um an verschiedene Datenbereiche ranzukommen, die dann teilweise auch hinter der 64K Grenze liegen (aber immer woanders, ich weiß ja vor der Kompilierung nicht unbedingt, was alles eingebunden wird). Danke