Модуль часов DS3231, преобразование UNIX TimeStamp uint32_t в uint64_t
- Войдите на сайт для отправки комментариев
Сб, 19/03/2016 - 13:45
Доброго времени суток!
Имеется модуль часов DS3231, пользуюсь либой отсюда
https://github.com/jarzebski/Arduino-DS3231
Соответственно можно выдернуть напрямую в юниксовом формате дату и время
DS3231 timeModule; RTCDateTime dateTime; dateTime = timeModule.getDateTime(); uint32_t timeStampVal = dateTime.unixtime;
Вывожу в сериал, все красиво - 10 циферок времени
Но мне необходимо хранить время 8ю байтами, а не 4мя, поэтому вопрос - каким образом мне конвертировать HEX представление uint32 в HEX представление uint64?
Ну, напишите в пятой строке uint64_t вместо нынешнего uint32_t.
Для чего это Вам может быть нужно не мне судить, но надо, так напишите.
Теперь уже не надо.
Ситуация была в следующем - сначала я думал что модуль времени как и сама ардуинка считает в миллисекундах, поэтому хранить юниксовый формат по стандарту надо 8ю байтами - число то огромное получается
Но как оказалось модуль часов считает секундами, поэтому библиотека заточена под uint32 и возвращает значение преобразованное под юниксовый формат именно в секундах и значение определено типом uint32..
Поэтому буду работать с uint32