Я пытаюсь вручную настроить часы RTC.
Когда автоматически, это рабочий код:
clock.setDateTime((__DATE__, __TIME__));
Но теперь я хочу установить его вручную, и вот что я пытаюсь:
char dateTime[20];
strcat(dateTime, "2017,03,22,16,20,04");
//clock.setDateTime((__DATE__, __TIME__));
clock.setDateTime(dateTime);
Я получаю следующую ошибку (в последней строке):
error: invalid conversion from 'char*' to 'uint32_t {aka long unsigned int}' [-fpermissive]
Как решить?
РЕДАКТИРОВАТЬ:
Вот как определяется setDateTime:
void setDateTime(uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second);
setDateTime()
принимает int
в качестве параметров, но вы даете это char
массив.
Звонок должен быть:
clock.setDataTime(2017, 3, 22, 16, 20, 4);
setDateTime()
принимает дату как последовательность целых чисел:
setDateTime(year, month, day, hours, minutes, seconds);
Бонус: согласно man strcat
:
char *strcat(char *dest, const char *src);
Описание
strcat()
функция добавляет ЦСИ строка в Dest строка, …
Так как вы используете это так:
char dateTime[20];
strcat(dateTime, "2017,03,22,16,20,04");
ты добавляешь "2017,03,22,16,20,04"
в унифицированную память, которая является неопределенное поведение.