asi dices?
#include <Wire.h>
#include "RTClib.h"
#include <UTFTGLUE.h> //tft
UTFTGLUE tft(0,A2,A1,A3,A4,A0); //tft
RTC_DS3231 rtc; // Declaramos un RTC DS3231
unsigned long S ;
//Declaramos variables monitor TFT---------------------------------------
int Segundo;
char Vsegundo[2];
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
#define GRAY 0x8410
uint16_t version = MCUFRIEND_KBV_H_;
DateTime HoraFecha;
void setup () {
Serial.begin(9600);
// Comprobamos si tenemos el RTC conectado
if (! rtc.begin()) {
Serial.println("No hay un módulo RTC");
while (1);
}
//definimos propiedades monitor tft------------------------------------------------
uint16_t ID = tft.readID(); //
tft.begin(ID);
tft.setRotation(1); //pantalla horizontal
tft.fillScreen(0x0000); //Rellenamos la pantalla de color negro
}
void loop () {
DateTime now = rtc.now();
HoraFecha = rtc.now(); //obtenemos la hora y fecha actual
if (millis() - S> 1000UL) { //mostrará la hora cada 1 segundo o 1000 mseg
unsigned long start = micros();
queSegundo();
S = millis();
Serial.println(micros() - start);
}
}
unsigned long queSegundo() {
Segundo = HoraFecha.second();
sprintf(Vsegundo,"%02d", Segundo);
tft.setCursor(155, 60);
tft.setTextColor(WHITE, BLACK);
tft.setTextSize(4);
tft.println(Vsegundo);
}
De esta forma es lo que comentaba, salta un segundo cada 10 o 20, las lecturas que da son de 46108 a 46136