Dein Problem hat nichts mit dem PROGMEM zu tun (würde im RAM genauso wenig funktionieren). Bei einem "extern type array[];" ist die Größe des Arrays nun mal unbestimmt, und daher funktioniert auch sizeof() nicht.
Du hast im Grunde drei Möglichkeiten:
1) Die konkrete Größe mit angeben:
extern type array[123];
2) Eine zusätzliche Variable für die Größe verwenden:
type array[] = {...};
const uint8_t array_size = sizeof(array);
...
extern type array[];
extern const uint8_t array_size;
3) Das Array mit einer eindeutigen Endkennung versehen (wie die Null-Terminierung bei Strings). Dann brauchst du die Größe in der Schleife nicht.
Ich persönlich favorisiere immer Variante 3, außer "type" ist wirklich richtig groß.





 
			
			
 
					
					
					
						 Zitieren
Zitieren Zitat von Jaecko
 Zitat von Jaecko
					
				

Lesezeichen