Hola a todos
Estoy tratando de entender el uso del PROGMEM pero cuanto más leo mas me confundo.
Una de las cosas que me tiene confundido es por ejemplo la siguiente:
**** Ejemplo 1
const prog_char PROGMEM message_00[] PROGMEM = "HOLA";
const prog_char PROGMEM message_01[] PROGMEM = "PRUEBA";
**** Ejemplo 2
const prog_uint8_t PROGMEM sprite_00[] = {
0x18, // ___XX___
0x3C, // __XXXX__
0x7E, // _XXXXXX_
0xDB, // X_XXXX_X
0xFF, // XXXXXXXX
};
**** Ejemplo 3
const uint8_t LcdCustomChar[] PROGMEM=//define 8 custom LCD chars
{
0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, // 0. 0/5 full progress block
0x00, 0x1F, 0x10, 0x10, 0x10, 0x10, 0x1F, 0x00, // 1. 1/5 full progress block
0x00, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, // 2. 2/5 full progress block
0x00, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x00, // 3. 3/5 full progress block
0x00, 0x1F, 0x1E, 0x1E, 0x1E, 0x1E, 0x1F, 0x00, // 4. 4/5 full progress block
0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, // 5. 5/5 full progress block
0x03, 0x07, 0x0F, 0x1F, 0x0F, 0x07, 0x03, 0x00, // 6. rewind arrow
0x18, 0x1C, 0x1E, 0x1F, 0x1E, 0x1C, 0x18, 0x00 // 7. fast-forward arrow
};
Son tres maneras de definir algo que deseo guardar en memoria, pero no entiendo las diferencias en el modo de almacenarlas.
Las tipo CHAR (ej.1) tienen "" y supongo que esto es asi de simple de interpretar, pero las de tipo UINT veo que en algunos casos estan linea por linea (ej.2), y en otros, cada linea tiene multiples valores (ej.3)
Yo deseo definir un sprite de 5x5 bit y enviarlo bit pot bit
43210
A 01111
B 10000
C 10000
D 10000
E 01111
Primero envio A0, luego B0, C0, D0, E0
Segundo envio A1, luego B1, C1, D1, E1
¿Alguien me puede orientar o ayudar?
Saludos y gracias