ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 марта
1046635 Топик полностью
fk0, легенда (23.10.2020 21:05, просмотров: 513) ответил lloyd на А потом такой берет и переводит стрелки часов с 1 января 1970 года в 2020 год. Или наоборот.
Это само собой и обязательно. Я поэтому и написал -- время от момента старта прибора. Всегда нужно монотонное внутреннее время. Для включения чего-то по-расписанию использовать календарное время тоже нельзя. Верней можно, но функция которая "спит до такого-то календарного времени" получается достаточно сложной: 

Все временные интервалы нужные для работы алгоритмов управления привязаны к первому времени. Второе используется только там, где оно принципиально необходимо (выполнение действий в заданный момент календарного времени). При этом могут возникать проблемы вроде пропуска событий (если время переведено вперёд) или многократного запуска (если время переведено назад). Поэтому условие возникновение событий должно задаваться не строгим равенством календарного времени и заданного (даже программа на ПК может зависнуть на несколько секунд, пока операционка что-то делает), а через некий периодически запускаемый конечный автомат, который проверяет, что при предыдущем запуске время было менее заданного, а в текущий момент больше или равно, но не более заданного порога (периода работы, например) -- значит событие произошло. При переводе назад -- могут быть разные варианты, в зависимости от того, что управляется. Или нет реакции, или есть если сейчас попадает в нужный интервал, а на прошлом шаге время было за интервалом...


http://caxapa.ru/1034903

[ZX]