k000858 0 27 декабря, 2016 Опубликовано 27 декабря, 2016 · Жалоба В других контроллерах (stm32f4 к примеру) дата меняется в 00:00:00 время В STM32F2 наблюдаю другую картину: дата может измениться в 00:00:07 время или не изменяться вообще. Кто то сталкивался с такой проблемой? куда капать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
paulbell 0 28 сентября, 2017 Опубликовано 28 сентября, 2017 · Жалоба В других контроллерах (stm32f4 к примеру) дата меняется в 00:00:00 время В STM32F2 наблюдаю другую картину: дата может измениться в 00:00:07 время или не изменяться вообще. Кто то сталкивался с такой проблемой? куда капать? У меня такая же проблема. Есть ли решение? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 236 28 сентября, 2017 Опубликовано 28 сентября, 2017 · Жалоба Кто то сталкивался с такой проблемой? куда капать? Ни на кого не надо капать. :) У меня такая же проблема. Есть ли решение? Забить на эти регистры, разрешить секундные прерывания и по ним инкрементировать счётчик в памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k000858 0 29 сентября, 2017 Опубликовано 29 сентября, 2017 · Жалоба У меня такая же проблема. Есть ли решение? К сожалению, уже не помню, как решил данную проблему. Кажется, было связано с чтением регистра с датой: толи необходимо читать его после каждого чтения регистра времени (именно после него) толи что то такое. Ни на кого не надо капать. :) Забить на эти регистры, разрешить секундные прерывания и по ним инкрементировать счётчик в памяти. ага и дату самому считать и календарь весь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 236 29 сентября, 2017 Опубликовано 29 сентября, 2017 · Жалоба ага и дату самому считать и календарь весь Да. А это что, сложно??? :smile3046: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zeal0t 0 29 сентября, 2017 Опубликовано 29 сентября, 2017 · Жалоба В других контроллерах (stm32f4 к примеру) дата меняется в 00:00:00 время В STM32F2 наблюдаю другую картину: дата может измениться в 00:00:07 время или не изменяться вообще. Кто то сталкивался с такой проблемой? куда капать? Для L серии есть вот такое: Get the RTC_TR register, reading RTC_TR locks the values in the higher-order calendar shadow registers until RTC_DR is read. т.е. нужно прочитать TR и потом DR иначе значение даты обновляться не будет пока его не считают. Может и тут такое же? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 81 29 сентября, 2017 Опубликовано 29 сентября, 2017 · Жалоба Забить на эти регистры, разрешить секундные прерывания и по ним инкрементировать счётчик в памяти. К сожалению, когда питание выключили, RTC будет тикать, а инкрементировать некому. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 236 29 сентября, 2017 Опубликовано 29 сентября, 2017 · Жалоба К сожалению, когда питание выключили, RTC будет тикать, а инкрементировать некому. При включении питания считать RTC, преобразовать в секунды и начать тикать. С часами на основе счётчика секунд, работать много проще чем с набором полей времени/даты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alechek 0 29 сентября, 2017 Опубликовано 29 сентября, 2017 · Жалоба С часами на основе счётчика секунд, работать много проще чем с набором полей времени/даты. +1 даже стандартная Cи функция time() возвращает секунды. преобразовывать каждый раз полный календарь в секунды - лишние накладные расходы, никому не нужные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 29 сентября, 2017 Опубликовано 29 сентября, 2017 · Жалоба . . . Забить на эти регистры, разрешить секундные прерывания и по ним инкрементировать счётчик в памяти. ++++ (!) ++++ Нормальные узлы RTC имеют 2 режима - обычный календарный (человеческий) и UTC счетчик. Еси есть такая возможность - переведите узел в режим 32-разрядного счетчика UTC и пользуйтесь удобным и стандартым методом работы в временем localtime(), gmtime(), strftime() etc. Заодно "автоматически" решается гемор с переходом или "непереходом" зима-лето, если ОНО требуется и таймозонами. --- Если аппаратного UTC нет - . . . Забить на эти регистры, разрешить секундные прерывания и по ним инкрементировать счётчик в памяти. :) И будет Вам счастье .... Проверка "прохода" через час: if( (UTC_Counter % 3600) == 0 ) . . . . . Проверка "прохода" через 5 минут: if( (UTC_Counter % 300) == 0 ) . . . . . Печать часы-минуты-секунды в массив ms strftime( ms, 20, "%H-%M-%S", &ttm_LOC ); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 29 сентября, 2017 Опубликовано 29 сентября, 2017 · Жалоба В STM32F2 наблюдаю другую картину: дата может измениться в 00:00:07 время или не изменяться вообще. Там в мануале написали целую страницу про то, как правильно читать регистры календаря. Наверняка что-то там нарушаете. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 236 29 сентября, 2017 Опубликовано 29 сентября, 2017 · Жалоба Нормальные узлы RTC имеют 2 режима - обычный календарный (человеческий) и UTC счетчик. Еси есть такая возможность - переведите узел в режим 32-разрядного счетчика UTC Вы мне-то это зачем советуете?? Я всегда именно так и делаю. Про прерывания написал - как общий случай, когда режима счётчика нет. Там в мануале написали целую страницу про то, как правильно читать регистры календаря. Наверняка что-то там нарушаете. 99.9% что именно так и обстоит дело. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 29 сентября, 2017 Опубликовано 29 сентября, 2017 · Жалоба Вы мне-то это зачем советуете?? Я всегда именно так и делаю. Про прерывания написал - как общий случай, когда режима счётчика нет. . . . Вас-с-с-с я цитирую и плюсую, а советую ТС. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k000858 0 29 сентября, 2017 Опубликовано 29 сентября, 2017 · Жалоба да да и будильник из спящего режима на таймере делать? в общем в моем случае проблема давно решена. как озвучили выше "необходимо сначала считывать регистр времени затем даты". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zeal0t 0 29 сентября, 2017 Опубликовано 29 сентября, 2017 · Жалоба 99.9% что именно так и обстоит дело. В сообщении #6 я же про это ТС-у написал. Что то проигнорировал он ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться