Come calcolare la frequenza di misura del sensore e scrittura su sd

Si in realta' l'avevo messo nello sketch originale,ma si e' perso nel taglia e incolla che ho effettuato,per postarlo qui!Ad ogni modo,ho aggiunto un serial prima della creazione del buffer,e ho notato che il problema e' proprio quest'ultimo,in quanto all'inizo della sua creazione l'RTC funziona perfettamente.Cosa puo' essere?Riposto il codice aggiornato!

#include <SD.h>
#include <Wire.h>
#include "RTClib.h"
#include <SPI.h>
#include "ADXL335.h"


ADXL335 accelerometer;

RTC_DS1307 RTC;

File Dati; // La variabile di tipo file che useremo per il log

const int chipSelect =10;

char buffer[50];

void setup ()

{
  Serial.begin(9600);
  
  Wire.begin(); // inizializziamo la libreria WIRE per usare
  RTC.begin(); //il Real Time clock basato su ds1307
  accelerometer.begin();
  
  if (! RTC.isrunning()) 
  
  {
    Serial.println("RTC NON STA FUNZIONANDO");
    
    //LA SEGUENTE ISTRUZIONE SERVE SOLO PER REGOLARE L'OROLOGIO.ATTIVARE SOLO SE NECESSARIO.
  //  RTC.adjust (DateTime(__DATE__, __TIME__)); //imposta ora e data
    }
    
  Serial.print("\nSto verificando la presenza della scheda..\n");
  pinMode(10, OUTPUT); // fa funzionare la sdlib
  
  if (!SD.begin(chipSelect))
  
  {
     Serial.println("SD card non trovata");
     return;
     
  }
 else 
   {
     Serial.println("Scheda inserita e funzionante");
     Serial.println();
    
   }
}
void loop ()

{
   float ax,ay,az;
   
    DateTime now = RTC.now(); // leggiamo l'ora
    accelerometer.getAcceleration(&ax,&ay,&az);
  
    Serial.print(now.day(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.year(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
 
  snprintf(buffer,50,"\t%d g,%d g,%d g\t%02d:%02d:%02d\t",ax,ay,az,now.hour(),now.minute(),now.second());
 
  Dati = SD.open("datalog.txt", FILE_WRITE); // apriamo il file in scrittura
  
  if (Dati)
  {
   Dati.println(buffer);  // Scriviamo in un sol colpo i dati sul file
   Dati.close();     // chiudiamo e trasferiamo su SD
   Serial.print("Dati rilevati \t");
   Serial.println(buffer);
  }
  else
  {
    Serial.println("Errore nell'apertura di datalog.txt");
  }
  delay (10000);  // cadenza dellascrittura dei dati
  }