Hola buenos días,
Tengo uná línea de código que funciona en mi ordenador en C pero no consigo que me funcione en el microcontrolador (marca ATMEL). La sentencia es muy sencilla:
sscanf(GPS_local_lat, "%2d%f,%c", &grad, &minus, &NS);
La variable GPS_local_lat está definida como:
char GPS_local_lat[15];
Y justo antes de la ejecución del sscanf vale: 4029.7545,N
Sin embargo al ejecutarse el sscanf en el micro sólo se almacena 40 en la variable grad, sin embargo no almacena nada en minus ni en NS. Al ejecutarse esta misma sentencia en mi ordenador, sí que se almacena además del 40 en grad, se almacena 29.7545 en la variable minus y N en la variable NS.
He probado a definir char *GPS_local_lat en el programa del micro pero funciona igual: almacena sólo 40 en grad, pero no almacena nada en minus ni en NS. También he probado a hacer:
sscanf(GPS_local_lat, "%2d%6.4f,%c", &grad, &minus, &NS);
pero ocurre lo mismo.
No sé si es que estoy haciendo algo mal o es un problema del microcontrolador, pues la misma sentencia me funciona correctamente en C en el ordenador. El caso es que me extraña mucho porque la sentencia es muy sencilla..
¿Sabéis qué puede estar pasando?
Muchas gracias, saludos
Tengo uná línea de código que funciona en mi ordenador en C pero no consigo que me funcione en el microcontrolador (marca ATMEL). La sentencia es muy sencilla:
sscanf(GPS_local_lat, "%2d%f,%c", &grad, &minus, &NS);
La variable GPS_local_lat está definida como:
char GPS_local_lat[15];
Y justo antes de la ejecución del sscanf vale: 4029.7545,N
Sin embargo al ejecutarse el sscanf en el micro sólo se almacena 40 en la variable grad, sin embargo no almacena nada en minus ni en NS. Al ejecutarse esta misma sentencia en mi ordenador, sí que se almacena además del 40 en grad, se almacena 29.7545 en la variable minus y N en la variable NS.
He probado a definir char *GPS_local_lat en el programa del micro pero funciona igual: almacena sólo 40 en grad, pero no almacena nada en minus ni en NS. También he probado a hacer:
sscanf(GPS_local_lat, "%2d%6.4f,%c", &grad, &minus, &NS);
pero ocurre lo mismo.
No sé si es que estoy haciendo algo mal o es un problema del microcontrolador, pues la misma sentencia me funciona correctamente en C en el ordenador. El caso es que me extraña mucho porque la sentencia es muy sencilla..
¿Sabéis qué puede estar pasando?
Muchas gracias, saludos