Que se envíen en serie, o que no puedan imprimirse, no significa que el valor 0x00 no sea un valor válido.
Sólo tendrás que recibirlo como siempre y almacenarlo en tu array, por ejemplo así:
array[++indice] = getc();
Si utilizas CCS, es indiferente que utilices char, byte o unsigned int8. Los datos se almacenarán de la misma manera.
Para concatenar dos arrays puedes usar un bucle, algo como esto:
char array1[long1];
char array2[long2];
char array3[long1+long2];
for (i=0;i<long1+long2;i++) {
if (i<long1)
array3[i]=array1[i];
else
array3[i]=array2[i-long1];
}
De nuevo molestando para una ultima consulta, con respecto a la gran ayuda que me proporciono RedPIC
solo me falta saber como poder crear una funcion que acepte un parametro de una variable para poder
saber cual es su tamaño (sizeof) y visualizarlo en mi lcd, esto con el fin de poder saber que tamaño
tiene mi array, como seria posible? Tengo algo que he intentado hacer pero no me da el tamaño de vector
que en este caso seria de 8
char DIRECCCION[]={0x00,0x13,0xA2,0x00,0x40,0x60,0x6D,0x23};
void demo(char *ptr)
{
int8 size=0;
size=sizeof(ptr);
printf(lcd_putc,"%u",size);
}
void main(void)
{
lcd_init();
while (TRUEn
{
demo(DIRECCION); // Es la funcion que necesito introducirle variables que contienen diferentes tamanos de array, pues la direccion puede variar de tamano
}
}
Saludos cordiales
Lo que intento hacer es una funcion que me concatene arrays con valores hexadecimales, declarando en la RAM sus direcciones y llamando las variables que necesite para concatenar en el orden que deseo y no escribir toda la cadena