 
 void loop ()
 {
-    static byte iter;
-    iter = iter + 1;
+    static unsigned long lastTime;
+    unsigned long timeNow = millis();
     LOGLN("Loop");
 
     if (enter_time_setup())

    backlight_buttons();

    // Update meteo data
    if (!iter) {
        float temp_in, humid_in, temp_out, humid_out;
        int32_t pressure;

        read_meteo_data(temp_in, humid_in, temp_out, humid_out, pressure);
        fill_data(temp_in, temp_out, humid_in, humid_out, pressure);
    }

    // Clock icon - optional. Only if show_dew_point is disabled
    //print_clock();

    // Update the displayed time
    print_time_string(3 /* 4th row */);


    //print_clock(); // Optional

    byte ret;
    bool tmp1, tmp2;

    // second
    ret = last_second;
    time_format[6] = ret / 10 + ('0');
    time_format[7] = ret % 10 + ('0');

    if (ret != 0 && !full_update)
	goto end;

    // minute
    ret = rtc.getMinute();
    time_format[3] = ret / 10 + ('0');
    time_format[4] = ret % 10 + ('0');

    if (ret != 0 && !full_update)
	goto end;

    // hour
    ret = rtc.getHour(tmp1, tmp2);
    time_format[0] = ret / 10 + ('0');
    time_format[1] = ret % 10 + ('0');

    if (ret != 0 && !full_update)
	goto end;

    // Update all date string - very little optimization gain

    // day
    ret = rtc.getDate();
    time_format[10] = ret / 10 + ('0');
    time_format[11] = ret % 10 + ('0');

    // month
    ret = rtc.getMonth(tmp1);
    time_format[13] = ret / 10 + ('0');
    time_format[14] = ret % 10 + ('0');

    // year - only last two digits
    ret = rtc.getYear();

    time_format[18] = ret / 10 + ('0');
    time_format[19] = ret % 10 + ('0');

end:
    LOGLN(time_format);
    lcd.setCursor(0, row);
    lcd.print(time_format);
}

////////////////////////////////////////////////////////////////////////////////
