Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Вторник
26 ноября
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
ARM, RISC-V контроллеры
959640
Топик полностью
Tech_
(19.11.2019 19:20, просмотров: 205)
ответил
Лагунов
на
а как по простому вычислить текущее время в формате unixtime (народ просит)? Т.е. есть стандартная дата и время от RTC (год, месяц, день, час, минута). Как-то лень все года складывать с 1970-го. :-)
Так устроит?
unsigned long int date_to_int(rtccTimeDate * tds) { unsigned short int y; unsigned char i; // m; rtccTimeDate td; for(i = 0; i < 8; i++) td.b[i] = 10*(tds->b[i] >> 4) + (tds->b[i]&0x0f); // TimeDate BCD to BIN y = 2000 + (unsigned short int)td.f.year; if(td.f.mon < 3) { td.f.mon += 12; y -= 1; } // else m = td.f.mon; return (unsigned long int)td.f.sec + \ 60UL*(unsigned long int)(td.f.min + 60UL*(unsigned short int)td.f.hour) + \ ((((unsigned long int)y * 1461UL) >> 2) + (unsigned long int)((7 + 306*(unsigned short int)td.f.mon) / 10) + \ (unsigned long int)td.f.mday - 730533UL)*86400UL + 946674000UL; // td->f.mday - 730533UL)*60*60*24 + 946674000UL; }
Ответить
спасибо, вставлю, попробую. Вроде логика понятна. :-)
-
Лагунов
(20.11.2019 07:06
)
Это из встроенных PIC18 RTC в секунды. Не моё.
-
Tech_
(19.11.2019 19:25
)