Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/12/2010, 11:06
FrankDF
 
Fecha de Ingreso: diciembre-2010
Ubicación: México Distrito Federal
Mensajes: 2
Antigüedad: 13 años, 11 meses
Puntos: 0
Mensaje Respuesta: Ayuda con funcion gets en turbo c

Que tal Fw190 pues la cadena que quiero enviar al PIC es menor a 255 y mayor a 127 caracteres, el problema aqui es que si la cadena es menor a 127 caracteres no tengo problema alguno, pero si quiero escribir mas de 127 simplemente ya no puedo, haz de cuenta que ya no puedo escribir nada, incluso se escucha un sonido. Ahora bien, hasta este punto, la funcion bioscom no se ejecuta hasta este momento porque primero debo obtener la cadena y despues se va enviando caracter por caracter.

Copio el codigo de la funcion en donde tengo problemas:

void write(char opc1)
{
int tam, i;
char cad[256];
tam=0;
printf("Proporcione la informacion que desea grabar en memoria:\n\n");
gets(cad); //aqui es donde hay problemas a partir de 127 caracteres
tam=strlen(cad); //hasta q presione enter no pasa a esta funcion
printf("%d",tam);
bioscom(0,SETTINGS,PUERTO);
espera_puerto();
bioscom(1,ESC,PUERTO);
espera_puerto();
bioscom(1,opc1,PUERTO);
for(i=0;i<=tam-1;i++)
{
//status=bioscom(3,0,PUERTO);
//if(status&DATA_READY)
espera_puerto();
bioscom(1,cad[i],PUERTO);
delay(50);
}
espera_puerto();
bioscom(1,ENTER,PUERTO);
}

Ahorita q estoy escribiendo la anotacion se me ocurre, el tamaño de un entero (int) es mayor o menor a 256 porque igual podria definirla como long o doble no?

Gracias por la respuesta