Files
arduino-examples/buzz/datetime.cpp
2021-08-05 13:20:51 +09:00

26 lines
562 B
C++

#include "Arduino.h"
#include "datetime.h"
unsigned long DateTime::get(){
return _set_time + _elapsed_ms_after_set_time/1000;
}
void DateTime::set(unsigned long sec_since_epoch){
_set_time = sec_since_epoch;
_elapsed_ms_after_set_time = 0;
}
void DateTime::update(){
_current_ts = millis();
if (_current_ts < _last_ts) {
_set_time = _set_time + _elapsed_ms_after_set_time/1000;
_elapsed_ms_after_set_time = _current_ts + (MAX_UL - _last_ts);
} else {
_elapsed_ms_after_set_time += _current_ts;
}
_last_ts = _current_ts;
}