Сегодня заметил неприятный глюк с RTC на STM32L162. Если настроить прерывание RTC так, чтобы оно срабатывало раз в секунду, и точно в 00.00.00 в обработчике сразу прочитать дату, она окажется вчерашней. Приходится читать на секунду позже, иначе сигнал будет срабатывать не в те дни недели. Что, дата меняется не синхронно со временем?
_________________ Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
Прерывание может сработать или ДО события(момент начала), или ПОСЛЕ(момент окончания). Получается, что прерывание генерируется в момент начала события. То есть появился сигнал, что нужно добавить секунду, но секунда еще не добавлена.
Я как раз проверяю в прерывании, что секунда сменилась. В реальности прерывания летят 4 раза в секунду, я отсеиваю из них только те, где секунды (и минуты!) сменились (сравнением с предыдущим значением). После этого сразу же читаю дату - а она не сменилась, несмотря на 00:00 в регистрах времени.
_________________ Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
Это не глюк... это фича... Вам нужен будильник на ровно 12:00:00 PM сегодняшнего дня... вот он и сработает... а через секунду будет уже следующий день...
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
Нет, это баг. Если я на обычных часах ставлю сигнал на вторник на 00.00, то он срабатывает именно в это время, а не на сутки позже. И срабатывает строго секунду в секунду.
_________________ Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
Не буду спорить об исключительности STM32L162... хотя я в этом очень сомневаюсь... но на STM32F0xx дата переводится одновременно с временем... секунда в секунду... специально проверил... именно в прерывании...
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
И что??? Недочитанный референс даёт право утверждать о каких-то глюках МК??? Некоторые события периферии привязаны к тактовой периферии, а не ядра... и при изменении соотношения нужно это учитывать... иначе всё рухнет... Но это не глюк... это непонимание работы модулей и ядра МК при гибкой системе тактирования...
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения