0

I am sorry to ask this question as I think it has more to do with my mediocre C++ programming skill than with the arduino. I do have a project where I want to use an RTC DS2131. I started out by using all the separate examples of the modules I need and put them together. But the RTC give me a headache :-(

The example ran fine where it just output the date to the serial port. Somthing along this:

Serial.print(RTC.getDay());
Serial.print("-");
Serial.print(RTC.getMonth());

Now I want these values in different variables because I want to save them on an SD card as well.

Thus I came up with this simple test program:

#include <Wire.h>
#include <RTC.h>
static DS3231 RTC;
void setup()
{ 
 Serial.begin(9600);
 RTC.begin();
}
void loop()
{ 
int yearNow; 
int monthNow, dateNow, hourNow, minuteNow, secondNow, weekNow;
if (RTC.isRunning())
 {
 yearNow=RTC.getYear();
 monthNow =RTC.getMonth();
 dateNow=RTC.getDay();
 weekNow=RTC.getWeek();
 hourNow=RTC.getHours();
 minuteNow=RTC.getMinutes();
 secondNow=RTC.getSeconds();
 
 Serial.print("Weekday: ");
 Serial.print(weekNow);
 Serial.print(' Time:');
 // Finally the hour, minute, and second
 Serial.print(hourNow);
 Serial.print('-');
 Serial.print(minuteNow);
 Serial.print('-');
 Serial.print(secondNow);
 Serial.print(" ## "); 
 Serial.print("Date: ");
 Serial.print(yearNow);
 Serial.print('/');
 Serial.print(monthNow);
 Serial.print('/');
 Serial.println(dateNow);
 
 }
}

Now I would expect this output: Weekday: 4 Time:16-10-36 ## Date: 2020年7月28日

But this is what I get: Weekday: 42591416-10-36 ## Date: 2020年7月28日

As a sidenote the variables in this sketch are declared as "int". After having looked into the header files of the library I tried uint8_t resp. uint16_t for the year. But nothing changed.

I am sorry but I have no clue as what beginner mistake I am achieving this time?? :-(

Thanks for your help.

asked Jul 28, 2020 at 14:19

1 Answer 1

1

You used single quotes instead of double quotes. Single quotes are for single characters. Double quotes are for strings (or character arrays).

Serial.print(' Time:');

should be

Serial.print(" Time:");
answered Jul 28, 2020 at 14:31
2
  • Thanks. I thought " and ' are interchangable. Commented Jul 28, 2020 at 15:22
  • They are in javascript or PHP, not in C/C++. Commented Jul 28, 2020 at 18:11

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.