Hola:
Estoy haciendo un programa en Cpp el cual ya compilado se carga en un microcontrolador.
El uC recibirá un pack de datos (22,34,34,176,90,20,60,0) que se definen de la siguiente manera:
#define dato0 recibe[0]
#define dato1 recibe[1]
#define dato2 recibe[2]
#define dato3 recibe[3]
#define dato4 recibe[4]
#define dato5 recibe[5]
#define dato6 recibe[6]
#define dato7 recibe[7]
int8 recibe[8]; // Éste es el Pack
Justo después de recibir el pack, se envía el mismo a una PC vía Serial (RS-232) en modo Bytes
(no string) de la siguiente manera:
putc(recibe[]);
Y en la PC, usando CuteCom en modo HEX como Software Serial, se recibe el pack como:
[0x16][0x22][0x22][0xB0][0x5A][0x14][0x3C][0x00]
Lo cual es correcto.
Pero si en vez de enviar recibe[], mando uno a uno sus componentes:
putc(dato0);
putc(dato1);
putc(dato2);
putc(dato3);
putc(dato4);
putc(dato5);
putc(dato6);
putc(dato7);
Recibo lo siguiente, que no es lo esperado:
[0x16][0x00][0x00][0x00][0x00][0x00][0x00][0x00]
[0x22][0x00][0x00][0x00][0x00][0x00][0x00][0x00]
[0x22][0x00][0x00][0x00][0x00][0x00][0x00][0x00]
[0xB0][0x00][0x00][0x00][0x00][0x00][0x00][0x00]
[0x5A][0x00][0x00][0x00][0x00][0x00][0x00][0x00]
[0x14][0x00][0x00][0x00][0x00][0x00][0x00][0x00]
[0x3C][0x00][0x00][0x00][0x00][0x00][0x00][0x00]
[0x00][0x00][0x00][0x00][0x00][0x00][0x00][0x00]
Lo cual provoca que mi proyecto no funcione, por el "exceso" de datos extras que vienen con
cada dato0,1,...7.
Admito que me cuesta trabajo entender los arreglos, porque tal parece que:
recibe[0] está compuesto por dato0[0], dato0[1], ......dato0[7]
recibe[1] está compuesto por dato1[0], dato1[1], ......dato1[7]
y así todos los demás.
De todos modos mando mi código completo en Cpp por si alguien tiene una idea de cómo solucionarlo.
Gracias.