|
|
  |
STM32L151 RTC, Какое-то неудобство использования |
|
|
|
Dec 6 2013, 17:04
|

Гуру
     
Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702

|
Цитата(smk @ Dec 6 2013, 20:49)  А будильника там тоже нет? Есть Цитата(jcxz @ Dec 6 2013, 20:38)  Решение навскидку: Читать значение RTC в прерывании какого-то таймера (частоту прерывания выставить в соответствии с необходимой точностью обнаружения момента изменения RTC). По обнаружению изменения значения RTC, перепрограммировать частоту на период немного меньше секунды. После получения этого прерывания, опять установить большую частоту прерывания до изменения RTC. и так далее. Надеюсь идея ясна. Замечательно . На мой взгляд сканировать состояние RTC с большой частотой не непрерывно а изредка, видимо ради экономии ресурсов процессора - это способ сделать глюк который будет происходить в момент нехватки ресурсов более редким и потому более сложноотлавливаемым Ещё можно просверлить в процессоре дырочку, и через неё смотреть не изменилась ли секунда в RTC.
--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
|
|
|
|
|
Dec 6 2013, 20:15
|

Гуру
     
Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702

|
Цитата(Golikov A. @ Dec 7 2013, 00:04)  заводить будильник на след секунду, и работать по прерыванию будильника.
время завода будильника не критично, сигнал сработает по границе секунды. Да, пожалуй. Но и это кривовато. Что бы завести будильник надо отключить защиту, подождать пока какой-то бит установится. Не понимаю, зачем столько защиты от записи в RTC ? Если случайно не то запишется в регистры любой другой периферии это точно так же приведёт к краху программы.
--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
|
|
|
|
|
Dec 6 2013, 21:13
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
ртц то небось на внешнем кварце, это просто синхронизация 2 клоковых доменов... наверное
было у меня устройство с часиками внешними, как раз по такому принципу, ставило себе будильник на 5 секунд вперед, и засыпало сном младенца. По будильнику вставала, делало все свои дела, заводило будильник и спать...
Мне вот что не понятно, если у вас устройство не спит, нафига с РТЦ то мучиться, заведите таймер на милисекундный- секундный тик, и работайте по нему. РТЦ ИМХО для чего то более длительного, по нему можно что-то уточнять раз в минуту, част, день, но ни долбить его как интервальный таймер. ИМХО
|
|
|
|
|
Dec 6 2013, 21:23
|

Гуру
     
Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702

|
Цитата(Golikov A. @ Dec 7 2013, 01:13)  ртц то небось на внешнем кварце, это просто синхронизация 2 клоковых доменов... наверное
было у меня устройство с часиками внешними, как раз по такому принципу, ставило себе будильник на 5 секунд вперед, и засыпало сном младенца. По будильнику вставала, делало все свои дела, заводило будильник и спать...
Мне вот что не понятно, если у вас устройство не спит, нафига с РТЦ то мучиться, заведите таймер на милисекундный- секундный тик, и работайте по нему. РТЦ ИМХО для чего то более длительного, по нему можно что-то уточнять раз в минуту, част, день, но ни долбить его как интервальный таймер. ИМХО устройство не вещь в себе, а как-то взаимодействует с окружающим миром, и момент изменения секунд именно в RTC принципиален. На вопрос "всё ли я верно понимаю ? " я ответ получил. Тему можно закрывать.
--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
|
|
|
|
|
Dec 7 2013, 07:16
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(MiklPolikov @ Dec 6 2013, 23:56)  Много прерываний одновременно, из-за это что-нибудь не успеет обработаться и т.п. Вы сами, исходя из частоты CPU, его загрузки, кол-ва прочих прерываний и пр. должны определить частоту для таймера, которая не помешает остальным ISR. Иначе, следуя вашей логике, вообще никакие прерывания (асинхронные одно относительно другого) нельзя использовать, так как они могут наложиться и " что-нибудь не успеет обработаться"
|
|
|
|
|
Dec 7 2013, 11:52
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 16-06-11
Пользователь №: 65 731

|
не совсем понятно почему просто не использовать секундные прерывания от RTC_wakeup?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|