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

Anzitutto grazie per la pazienza,ma sono davvero agli inizi con la programmazione in c.Magari per alcuni queste cose sono delle banalita',ma per me sono abbastanza difficili (ad ogni modo ho gia provveduto ad ordinare un manuale di C)Allora ho modificato il codice nel modo seguente:

#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[70];

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
  
  snprintf(buffer,70,"\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 (0);  // cadenza dellascrittura dei dati
  }

Il programma viene compilato,ma ho errori nell'output:

tipo questo:
Dati rilevati -15744 g,15821 g,28832 g 16003:-32768:16300
voltage:
1.24
1.28
1.58
Dati rilevati -31488 g,15739 g,-7872 g 15986:-32768:16295
voltage:
1.23
1.27
1.57
Dati rilevati -31488 g,15659 g,-7872 g 15966:00:16293

Come si vede,i valori misura in g dell'accelerometro sono totalmente sbagliati, cosi' come i valori del RTC.
Forse il buffer dovrebbe essere inizializzato ogni volta?