А вот еще задача, кажущаяся простой, но пока не нашел преемлимого решения.
Есть контроллер с часами DS1307.
Некое внешнее устройство время от времени передает в контроллер "эталонное" время. Необходимо установить часы DS1307, но только в том случае, если время на часах DS1307 отличается от принятого "эталонного" более чем на N секунд (например, N=10).
Читаем из часов: hour, min, sec. Принимаем: Ehour, Emin, Esec.
Какам то образом сравниваем hour, min, sec и Ehour, Emin, Esec. Если разница между ними меньше N секунд, то hour=Ehour, sek=Esek, min=Emin и записываем все это в DS1307.
Но как сравнить hour, min, sec и Ehour, Emin, Esec??? С учетом перехода через час и через сутки!
Был вариант пересчитать время в число секунд с начала суток и потом сравнивать. Может есть еще варианты?
|