Bonjour,
Je me prend encore le chou avec un truc que je devrais résoudre, mais voilà.... c'est pas le cas.
J'ai une fonction qui va enregister les positions (latitude, longitude, datetime)
Pour cela, je déclare ma fonction ainsi:
void get_gps(uint32_t ilat, uint32_t ilon, uint32_t idat)
{
/*Cacule de la latitude*/
float flat, flon, f_sat, f_prec, f_flat, f_flon, f_speed;
unsigned long age;
gps.f_get_position(&flat, &flon, &age);
f_flat = (flat == TinyGPS::GPS_INVALID_F_ANGLE) ? 0.0 : flat;
f_flat = f_flat*10000;
ilat = (int)f_flat; // Converti en int EST_CE QUE LE (INT) EST OPTIONNEL?
Serial.print(F("DEBUG1")); Serial.println(ilat);
f_flon = (flon == TinyGPS::GPS_INVALID_F_ANGLE) ? 0.0 : flon;
f_flon = f_flon*10000;
ilon = (int)f_flon; // Conrti e it
sprint(F("Age"),2);
gps.crack_datetime(&year, &month, &day, &hour, &minute, &second, &hundredths, &age);
if (age == TinyGPS::GPS_INVALID_AGE)
Serial.print("******* ******* ");
else
{
char sz[22];
sprintf(sz, "%02d-%02d-%02d %02d:%02d:%02d ",
year, month, day, hour, minute, second);
sprint(sz, 2);
}
uint d;
//2017-2000 = 17
d = year-2000; // 17
d = d * 1000; // 1700
d = d + month; // 1709
d = d * 1000; // 170900
d = d + day; // 170922
d = d * 10000;
uint t;
t = hour; // 22
t = t *100; // 2200
t = t+minute; // 2256
idat = d+t; // 1709222256
}
get_gps(ilati, ilong, idate);
Serial.print(F("DEBUG11")); Serial.println(ilati);
Serial.println(ilong);
Serial.println(idate);
Je ne comprends paspourquoi DEBUG11 m'affiche 0, alors que DEBUG1 m'affiche 462354
et quand le GPS n'est pas disponible, donc newData == false, DEBUG11 m'affiche un truc de farfelu, du genre: 536872492
Je nage....
Merci pour vos lumières