Frage rtc1307

schönen guten tag, ich benutze einen ds1307 und möchte einen timestamp auslesen und in eine datei auf einer sd karte speichern.
leider tritt hierbei ein problem auf, das jahr wird eingeschrieben alle anderen daten nur als merkwürdige sonderzeichen.

hier ma ein snippet vom code

#define datumadresse 0x68
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;


RTC_DS1307 RTC;

im setup:
RTC.begin();
 if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }

und hier der code der einen dateiheader schreiben soll:
DateTime now = RTC.now();
     
      String headerString = "";
     headerString += "index"; 
     headerString += ",";
     headerString += "Luftdruck[mbar]"; 
     headerString += ",";
     headerString += "1.Byte";
     headerString += ",";
     headerString += "2.Byte";
     headerString += ",";
     headerString += "Temperatur[°C]";
     headerString += ",";
     headerString += "1.Byte";
     headerString += ",";
     headerString += "2.Byte";
    
       
    dataFile.print(now.year());
    dataFile.print('/');
    dataFile.print(now.month());
    dataFile.print('/');
    dataFile.print(now.day());
    dataFile.print(' ');
    dataFile.print(now.hour());
    dataFile.print(':');
    dataFile.print(now.minute());
    dataFile.print(':');
    dataFile.print(now.second());
    dataFile.println();
    dataFile.println(headerString);
     dataFile.close();

den ganze quellcode schreibe ich wenn das projekt datenlogger fertig ist.

das problem ist jetzt das im datenlogger folgendes steht:

"2011/ / :':a"
index,Luftdruck[mbar],1.Byte,2.Byte,Temperatur[°C],1.Byte,2.Byte
61,702,0,0,-38,0,0
62,1011,70,43,25,59,203
62,1011,70,43,25,59,186
62,1011,70,83,25,59,198
62,1011,70,70,25,59,198

mit dem A das in der Klammer hinter Temperatur steht kann ich ja noch leben, aber dieser mist bei der datums anzeige der ist wirklich doof. ich würde das gerne in eine datei hineinschreiben, ich weiss jedoch nicht wo der fehler liegt :0

kann mir da bitte jemand mal nen tip geben?

Mit welchem Programm schaust Du das File an?
Hast Du versucht das File mit einem Hex-Editor anzuschauen?
Ich habe den Verdacht, daß Du die numerischen Werte und nicht die Ascii-Code der Zahlen abspeicherst.
Viele grüße Uwe

gespeicher wird das file als csv. angeschaut hab ich mir das file normalerweise mit excel. habs eben schnell nochmal mit dem editor und mit wordpad geöffnet ist aber überall dasselbe:-(

edit wenn ich als .txt oder.dat abspeichere ändert sich nichts

Du mußt die Zahl in Ziffern umwandeln.
zB 59 Minuten muß die Zeichen "5" und "9" umwandeln bzw dessen Zahlenwerte 53 und 57.

Grüße Uwe

 dataFile.print(now.year(),DEC);
    dataFile.print('.');
    dataFile.print(now.month(),DEC);
    dataFile.print('.');
    dataFile.print(now.day(),DEC);
    dataFile.print('/');
    dataFile.print(now.hour(),DEC);
    dataFile.print(':');
    
   dataFile.print(now.minute(),DEC);
   dataFile.print(':');
   dataFile.print(now.second(),DEC);
   dataFile.print('\n');

ich hab es mal so gemacht;-) das ergebnis im file ist jetzt dieses:

2011.9.6/12:38:3
index Luftdruck[mbar] 1.Byte 2.Byte Temperatur[°C] 1.Byte 2.Byte10
3 1011 70 86 26 60 104
3 1010 70 4 25 59 244
4 1010 69 253 25 59 239
4 1010 69 253 25 59 239
4 1010 70 10 25 60 11
5 1010 69 240 25 59 250
5 1010 69 253 25 59 250
5 1009 69 220 25 60 18
6 1009 69 187 25 59 227

ich werd noch das datum um tauschen und noch führende nullen ransetzen. aber so bin ich schon ein wenig zufrieden. die ausgenommenen daten sind jetzt mit einem eindeutigen timestamp versehen:-)

danke für deine hilfe:-)