RTClib & TinyGPS++ Problem

SDCard module is not included into code yet and the output from Serial Monitor is :

RTC and GPS Logger
Date= 2014/6/7 # Time= 22:4:23
Date= 2014/6/7 # Time= 22:4:23
Date= 2014/6/7 # Time= 22:4:24

It never shows GPS Information until i remove the line “delay(500); // 500ms (2 Hz)” it shows RTC and GPS information both, but the problem is Date / Time information flows very fast and GPS like one in a second or so, like below :


Date= 2014/6/7 # Time= 22:10:2
Date= 2014/6/7 # Time= 22:10:2
Date= 2014/6/7 # Time= 22:10:2
LAT :38.811214 # LNG :27.575860 # SPD :2.0 # HDG :269.8
Date= 2014/6/7 # Time= 22:10:2
Date= 2014/6/7 # Time= 22:10:2
Date= 2014/6/7 # Time= 22:10:2

Where to change for making in order ? Please note that for some reason, i do not want to get time information from GPS.

#include <Wire.h>
#include <RTClib.h>
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#define RXPin 4
#define TXPin 5
#define GPSBaud 9600
#define ConsoleBaud 57600

TinyGPSPlus gps;
RTC_DS1307 RTC; // RTC

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);

void setup() 
{
  Serial.begin(ConsoleBaud);
  Wire.begin();
  RTC.begin();
  ss.begin(GPSBaud);

  Serial.println(F("RTC and GPS Logger"));
}

void loop() 
{
  {

// If any of location, speed or course is updated
  if (gps.location.isUpdated() || gps.speed.isUpdated() || gps.course.isUpdated())
  {
    Serial.print(F("LAT :")); Serial.print(gps.location.lat(), 6); Serial.print(F(" # LNG :")); Serial.print(gps.location.lng(), 6); 
    Serial.print(F(" # SPD :")); Serial.print(gps.speed.knots(), 1); Serial.print(F(" # HDG :")); Serial.println(gps.course.deg(), 1);   
  }

  while (ss.available() > 0)
    gps.encode(ss.read());
  }

DateTime now = RTC.now();

  Serial.print("Date= "); Serial.print(now.year(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.day(), DEC);
  Serial.print(" # Time= "); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.println(now.second(), DEC);

delay(500); // 500ms (2 Hz)

}