Empeze un proyecto nuevo para ver si se solucionaba pero ya se volvio a presentar el mismo error, estan estas dos funciones:
unsigned char PARAMETERS(void)
{
char comando[3]="&N";
char T_TIE_FLUJO[4]="155";
char TEMPKIL_VSG1[3]="12";
char TEMPKIL_VSG0[2]="5";
char TMIN1[3]="25";
char TMIN0[2]="2";
char TMAX1[3]="26";
char TMAX0[2]="5";
char TMMIN1[3]="02";
char TMMIN0[2]="5";
char TMMAX1[3]="02";
char TMMAX0[2]="8";
char CERO_MAXIMO[4]="300";
char T_TIE_DEST[3]="60";
char SEN_MOVPOS1[3]="20";
char SEN_MOVPOS0[2]="5";
char SEN_MOVNEG1[3]="21";
char SEN_MOVNEG0[2]="6";
char CALIBRA[6]="12345";
char MAX_CIL_NO_ENV[3]="05";
char PESO_MAX_PROM1[3]="60";
char PESO_MAX_PROM0[2]="5";
memset(STRING,0,sizeof(STRING));
strcpy(STRING,comando); // Forma Cadena de Lectura
strcat(STRING,ID);
strcat(STRING,T_TIE_FLUJO);
strcat(STRING,TEMPKIL_VSG1);
strcat(STRING,TEMPKIL_VSG0);
strcat(STRING,TMIN1);
strcat(STRING,TMIN0);
strcat(STRING,TMAX1);
strcat(STRING,TMAX0);
strcat(STRING,TMMIN1);
strcat(STRING,TMMIN0);
strcat(STRING,TMMAX1);
strcat(STRING,TMMAX0);
strcat(STRING,CERO_MAXIMO);
strcat(STRING,T_TIE_DEST);
strcat(STRING,SEN_MOVPOS1);
strcat(STRING,SEN_MOVPOS0);
strcat(STRING,SEN_MOVNEG1);
strcat(STRING,SEN_MOVNEG0);
strcat(STRING,CALIBRA);
strcat(STRING,MAX_CIL_NO_ENV);
strcat(STRING,PESO_MAX_PROM1);
strcat(STRING,PESO_MAX_PROM0);
strcat(STRING,CR);
PUTSTX(STRING,44);
}
Esta Manda una serie de parámetros por el puerto serie a una computadora, y esta la siguiente tambien:
unsigned char TIME(void)
{
overlay unsigned char CHECK;
overlay char SEC[3];
overlay char MIN[3];
overlay char HRS[3];
overlay char DAY[3];
overlay char MTH[3];
overlay char YRS[3];
memset(STRING,0,sizeof(STRING));
STRING[0]=IDENTIFIER_RADIO; STRING[1]='F'; STRING[2]=ID[0]; STRING[3]=ID[1]; STRING[4]=6; STRING[5]=13;
PUTSTX(STRING,6);
delay_ms(1);
CHECK = GETSTX(STRING,16,IDENTIFIER_RADIO,TIMEOUT_RADIO);
if(CHECK==SUCCESS)
{
STRCUT(SEC,STRING,4,5); //SAVE(SEC,SEC_DIRECTION)
STRCUT(MIN,STRING,6,7); //SAVE(MIN,MIN_DIRECTION)
STRCUT(HRS,STRING,8,9); //SAVE(HRS,HRS_DIRECTION)
STRCUT(DAY,STRING,10,11); //SAVE(DAY,DAY_DIRECTION)
STRCUT(MTH,STRING,12,13); //SAVE(MTH,MTH_DIRECTION)
STRCUT(YRS,STRING,14,15); //SAVE(YRS,YRS_DIRECTION)
memset(STRING,0,sizeof(STRING));
STRING[0]=IDENTIFIER_RADIO; STRING[1]='F';
strcat(STRING,ID);
strcat(STRING,SEC);
strcat(STRING,MIN);
strcat(STRING,HRS);
strcat(STRING,DAY);
strcat(STRING,MTH);
strcat(STRING,YRS);
strcat(STRING,CR);
PUTSTX(STRING,17);
}
}
Esta lee la fecha y hora mandada desde la computadora y regresa la misma cadena como confirmacion, si puedes observar tube que ponerles overlay a ciertas variables y actualmente esta funcionando, si les quito el overlay esas variables obtienen otros valores que no deberian, Saludos.