Affichage anarchique sur matrice LED - Mega 2560

donc, pour le tab des couleur en 24 bit, je laisse en long (uint32_t n'est pas plus léger ?) comme suit

const long TABLE_DES_COULEURS[] PROGMEM ={
0x000000, //0
0x999999, //1
0xcccccc, //2
0xffffff, //3
};

et les anim en byte (ou uint8_t, peut-être ?), comme suit ?

const byte ChampiMechant1[][256] PROGMEM ={
{
4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 
4, 4, 5, 5, 5, 5, 5, 6, 6, 5, 5, 5, 5, 5, 4, 4,  
4, 4, 4, 5, 7, 7, 5, 5, 5, 5, 7, 7, 5, 4, 4, 4, 
4, 4, 4, 5, 8, 7, 7, 5, 5, 7, 7, 8, 5, 4, 4, 4, 
4, 4, 5, 5, 8, 8, 8, 6, 6, 8, 8, 8, 5, 5, 4, 4, 
4, 5, 6, 6, 8, 8, 5, 6, 6, 5, 8, 8, 6, 6, 5, 4,
5, 6, 6, 6, 6, 8, 5, 6, 6, 5, 8, 6, 6, 6, 6, 5, 
5, 9, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 9, 5,  
5, 9, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 5, 
4, 5, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 5, 4, 
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
5, 10, 9, 5, 5, 12, 11, 11, 11, 11, 12, 5, 5, 9, 10, 5,  
4, 5, 10, 9, 9, 5, 11, 11, 11, 11, 5, 9, 9, 10, 5, 4, 
4, 4, 5, 10, 10, 5, 12, 12, 12, 12, 5, 10, 10, 5, 4, 4,
4, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
},
{
17, 17, 17, 17, 17, 0, 0, 0, 0, 0, 0, 17, 17, 17, 17, 17, 
17, 17, 0, 0, 0, 14, 14, 14, 14, 14, 14, 0, 0, 0, 17, 17, 
17, 17, 0, 0, 0, 0, 0, 14, 14, 0, 0, 0, 0, 0, 17, 17, 
17, 17, 17, 0, 3, 0, 0, 0, 0, 0, 0, 3, 0, 17, 17, 17, 
17, 17, 0, 0, 3, 3, 3, 14, 14, 3, 3, 3, 0, 0, 17, 17, 
17, 0, 14, 14, 3, 3, 0, 14, 14, 0, 3, 3, 14, 14, 0, 17,
0, 14, 14, 14, 14, 3, 0, 14, 14, 0, 3, 14, 14, 14, 14, 0, 
0, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 13, 0,
0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 
17, 0, 13, 3, 13, 13, 13, 13, 13, 13, 13, 13, 3, 13, 0, 17, 
17, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 
17, 17, 17, 17, 0, 15, 15, 15, 15, 15, 15, 0, 17, 17, 17, 17, 
17, 17, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 17, 17, 
17, 0, 13, 13, 0, 0, 16, 16, 16, 16, 0, 0, 13, 13, 0, 17, 
0, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 0, 
0, 0, 0, 0, 0, 0, 17, 17, 17, 17, 0, 0, 0, 0, 0, 0
}
};

Merci encore pour ta patience

long et uint32_t occupent la même taille sur une mega. uint32_t est mieux dans ce cas car on veut insister sur 4 octets.
unsigned long est équivalent pour une mega à uint32_t
Ici que les nombres soient signés ou pas n'a pas d'importance.

Ah ! d'accord, donc je ne touche pas aux long alors. et pour le reste c'est bon en ce qui concerne les type des tableaux ?

j'arrête de t'embêter après cela. ça m'a été d'une grande aide en tout cas, ne serait-ce que pour la compréhension.
je débute et c'est difficile de trouver des explications "simplifiées".
merci encore :wink:

Je ne vois pas d'erreurs. Sinon je l'aurais dit.

j'arrête de t'embêter après cela.
Si cela m'embêtait, je n'aurais pas répondu. Je suis aussi passé par là.

Et bien, tout est réglé et avec le même nombre de sprites et anim, j'arrive à 13% de memoire flash utilisé !! génial § merci beaucoup :smiley:

Le croquis utilise 34386 octets (13%) de l'espace de stockage de programmes. Le maximum est de 253952 octets.
Les variables globales utilisent 1040 octets (12%) de mémoire dynamique, ce qui laisse 7152 octets pour les variables locales. Le maximum est de 8192 octets.

Donc cela fonctionne, dont il va y avoir plus de sprites, et on se retrouve dans quelques temps...

Salut,
Pourquoi me dis-tu cela ? Tu sens que je vais avoir besoin d'aide à nouveau sur ce sujet ?

En fait, le problème à l'origine de ce fil n'a pas été réglé. Il a été contourné. Donc si tu ajoutes des sprites, un jour ou l'autre, tu vas de nouveau avoir des plantages.
Je reste persuadé que le dysfonctionnement initial est lié à l'adressage long.