lecture GPS fonctionne mais reste un souci: buffer de données à purger??

Bonjour,
Je me suis pris un kit pour me faire la main:
c'est quand même bien pensé, le bouzin!

Bon, je joue avec un module GPS, pour trouver l'heure,
les secondes en fait.

à seconde = 0 j'arrête de m'occuper du gps et je fais autre chose, 15 secondes environ
je recommence à lire le gps, et, ... 15 secondes plus tard il me répond toujours 0...

Moi pas comprendre, je suspecte très fortement un buffer à vider, malheureusement toutes les tentatives restent infructueuses.
dévalider le port et le rouvrir ensuite, purger, ... je sèche. :o

Si une âme charitable avait une idée, elle serait bienvenue!

Merci!

ci-dessous le code.

#include <SoftwareSerial.h>
#include <TinyGPS.h>
SoftwareSerial SoftSerial(2, 3);  //le grove GPS
TinyGPS gps;
// long latitude, longitude;
int Year;
byte Month, Day, Hour, Minute, Second, Hundredths;
// unsigned long chars;
unsigned long age = millis();

// unsigned short sentences, failed;

void setup()
{
   SoftSerial.begin(9600);                // port com du gps
   Serial.begin(9600);                     // port com de la console de windows
}

void loop()
{
 while (SoftSerial.available())
 {
  int c = SoftSerial.read();            // lire le gps
  gps.encode(c);
 }
// gps.get_position(&latitude, &longitude, NULL);
gps.crack_datetime(&Year, &Month, &Day, &Hour, &Minute, &Second, &Hundredths, &age);    // extraire l heure 
Serial.print("Seconde:  "); Serial.println(Second);  // afficher seconde
if (Second == 0 ) delay(14500);                        // délai équivalent à mon programme
// milloudiou comment purger le buffer de donnees GPS!!
}

Salut,

De grande chance en effet que le buffer série soit saturé.

Utilise millis() plutôt que delay() :