Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

Отслеживаем время для обработки события

Пн авг 12, 2019 11:05:57

Здравствуйте!В процессе разработки своего контроллера появилась задача отправки данных через GSM модуль. Отправка должна происходит в конкретный день и в конкретное время. Данные о датах и времени получаю от RTC. как бы оптимально отследить нужное время и отправить данные? проверять каждую секунду настал ли момент для отправки, я думаю это слишком жестоко по отношению к микроконтроллеру.Думал как то разбить проверку таким образом: сначала проверяю только месяц, при совпадении проверяю только число,затем часы и минуты...Может есть предложения попроще?

Re: Отслеживаем время для обработки события

Пн авг 12, 2019 11:20:54

A RTC часом не имеет своего будильника ? Вот его и используйте.

Re: Отслеживаем время для обработки события

Пн авг 12, 2019 11:25:01

A RTC часом не имеет своего будильника ? Вот его и используйте.

использую ds1307,чет не начитал я там будильника. Будильник есть вроде в модуле GSM SIM800L, с которым я и работаю, но хотелось бы иметь по меньше дел с этим модулем, капризный очень.

Re: Отслеживаем время для обработки события

Пн авг 12, 2019 11:34:26

Если нет возможности поставить ds3231 или похожую с будильником, то делайте, как и писАли. Проверяете месяц, потом день и тд.

Re: Отслеживаем время для обработки события

Пн авг 12, 2019 12:53:15

проверять каждую секунду настал ли момент для отправки, я думаю это слишком жестоко по отношению к микроконтроллеру.

Почему? Боитесь что МК перетрудится? :)))
Так и следует делать... Ну только если МК всё время работает, не уходит в сон.

Думал как то разбить проверку таким образом: сначала проверяю только месяц, при совпадении проверяю только число,затем часы и минуты...Может есть предложения попроще?

Да. Вести время в секундах (32-битным числом) и проверять сразу всё.

Re: Отслеживаем время для обработки события

Пн авг 12, 2019 12:58:10

проверять каждую секунду настал ли момент для отправки, я думаю это слишком жестоко по отношению к микроконтроллеру.

Почему? Боитесь что МК перетрудится? :)))
мартышкин труд какой-то :wink:

Добавлено after 1 minute 12 seconds:
Да. Вести время в секундах (32-битным числом) и проверять сразу всё.
ну так кроме времени мне и дату надо проверять, что теперь и ее осекундить :write:

Re: Отслеживаем время для обработки события

Пн авг 12, 2019 13:12:31

ну так кроме времени мне и дату надо проверять, что теперь и ее осекундить :write:

Конечно. Хранить дату/время в UNIX-формате (и работать с ней) - самое разумное решение.

PS: Кстати - некоторые RTC уже имеют возможность внутри себя вести время в UNIX-формате.

Re: Отслеживаем время для обработки события

Пн авг 12, 2019 13:18:31

ну так кроме времени мне и дату надо проверять, что теперь и ее осекундить :write:

Конечно. Хранить дату/время в UNIX-формате (и работать с ней) - самое разумное решение.

не ожидал подобных решений,мне казались они извращением. Ок, так и сделаем.Спасибо!!!

Добавлено after 1 minute 39 seconds:
Кстати - некоторые RTC уже имеют возможность внутри себя вести время в UNIX-формате.
мой RTC этому не обучен

Re: Отслеживаем время для обработки события

Пн авг 12, 2019 13:20:02

не ожидал подобных решений,мне казались они извращением. Ок, так и сделаем.Спасибо!!!

Если у Вас всего в одном месте используется временная метка (дата/время) и нет необходимости сравнивать разные временные метки между собой или вычислять между ними разницу например или другие математические действия производить или применять разные часовые пояса или синхронизировать с SNTP-серверами, то в принципе - без разницы, можно и не использовать UNIX-формат. Но как только появляется что-то из вышеописанного - то поймёте все преимущества. 8)
Но лучше сразу делать так, чтобы потом не переделывать всё если понадобится что-то добавить в систему.
Ответить