gracias por el aporte,
aun lo estoy digiriendo, jeje...
tengo una pregunta mas, que no se si sera a proposito del tema...
mi pregunta es basicamente de CCS
el tipo char (un byte) es basicamente distinto a el tipo int8 (1 byte). en todo lo que he programado no habia visto algo asi, y siempre char era igual a cualquier tipo de longitud equivalente.... demonios, esto me plantea un terrible problema, pues a veces lo que almaceno cambia segun como defina....
por ejemplo, me paso esto:
#use rs232(baud=9600,RCV=PIN_C7, XMIT=PIN_C6,Parity=N,Bits=8)
//Variable Global
int8 Enviado[20];
//Procedimiento
void Comando(char Temporal[20])
{
int8 i;
Enviado[0]=0x42;
Enviado[1]=0x00;
Enviado[2]=strlen(Temporal);
Enviado[3]=8F;
strcpy(&Enviado[4],&Temporal[0]);
Enviado[strlen(Temporal)+4]=0xA4;
for(i=0;i<=strlen(Temporal)+5;i++)
putc(Enviado[i]);
}
void main()
{
char Mensaje[18];
strcpy(Mensaje,"BIENVENIDOS");
Comando(Mensaje);
}
si observan bien, lo que hago es que en un arreglo char copio una cadena de caracteres, llamo un procedimiento Comando, en el cual coloco una cabecera, y la cadena, y la envio serialmente... entonces estoy enviando
(en hexadecimal)
--->42 00 11 8F 42 49 45 4E 56 45 4E 49 44 4F 53 A4
B I E N V E N I D O S
a que no adivinan qué recibo?
42 00 11 8F 2A 8D C4 D5 15 4D 08 A0 92 07 55 A4
no le veo el sentido. El "Bienvenidos" se cambio totalmente, pero el resto esta correcto.... y ha pasado en varias formas distintas
alguna idea?