реклама на сайте
подробности

 
 
> Часы в IAR на базе clock(). Секундый таймер IAR.
Dnepr33
сообщение May 27 2014, 04:41
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 1-02-11
Из: Днепропетровск
Пользователь №: 62 622



<time.h>
Как перенастроить, если это в принципе возможно, таймер 1-сек, к которому обращается ф-я clock_t clock(void).
Возможно ли задать тактирование таймера для clock() в IAR от вектора аппаратного прерывания внешнего таймера,
например PCF8563 ? ( В <time.h> определены макрос CLOCKS_PER_SEC )

Откуда возник вопрос.
Переход на зимнее-летнее время, будь он неладен. Аппаратные RTC это не поддерживают.
Даты-время-правило перехода определяются законодательно каждым государством.
Как достаточно просто реализовать часы RTC на базе UTC с поддержкой таймзоны и перехода зима-лето ?
( MSP430 )



Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jcxz
сообщение May 27 2014, 06:08
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Из часов берёте время, преобразуете его в секунды, выделяете текущее смещение относительно начала года, сравниваете с точками перехода, если находится в летнем интервале -
прибавляете величину смещения летнего времени.
Таким образом - при переходе зима<->лето часы в RTC не модифицируются (readonly).
У меня так в наших счётчиках сделано - так служба времени работает. Главная идея - время в RTC-часах - read only, не записывается
не при переходе зима<->лето, ни даже при корректировках (корректируется всегда дельта, которая потом прибавляется ко времени считанному из RTC).
Так можно безопасно и просто работать с RTC.

PS: Имхо - не в тот раздел написали - к IAR эта тема перпендикулярна.
PPS: В Незалэжной есть летнее время?
Go to the top of the page
 
+Quote Post
Dnepr33
сообщение May 27 2014, 07:41
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 1-02-11
Из: Днепропетровск
Пользователь №: 62 622



Цитата(jcxz @ May 27 2014, 12:18) *
Из часов берёте время, преобразуете его в секунды, выделяете текущее смещение относительно начала года, сравниваете с точками перехода, если находится в летнем интервале -
прибавляете величину смещения летнего времени.
Таким образом - при переходе зима<->лето часы в RTC не модифицируются (readonly).
У меня так в наших счётчиках сделано - так служба времени работает. Главная идея - время в RTC-часах - read only, не записывается
не при переходе зима<->лето, ни даже при корректировках (корректируется всегда дельта, которая потом прибавляется ко времени считанному из RTC).
Так можно безопасно и просто работать с RTC.

PS: Имхо - не в тот раздел написали - к IAR эта тема перпендикулярна.
PPS: В Незалэжной есть летнее время?


Да, я предполагаю запустить внешний RTC в режиме UTC. Он выдает аппаратно прерывание на процессор, где в обработчике можно и (или) вести счет секунд и преобразовывать из HHMMYYYY ... в секунды с 1970 или 1900 (прием из RTC по I2C). А "локальное" время получаем корректировкой на выдачу для экрана-отчета в зависимости от временной зоны и зима-лето-daylight.
А в IAR вопрос - тк. именно специфика IAR - прикрутить свой секундный обработчик для подсистемы времени, к которой обращается time();
(извиняюсь, перепутал с clock() ).

pps sm.gif обовязково !!! мыж в эвропе, а по ихним стандартам без DST низзя никак. IMHO
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 05:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01399 секунд с 7
ELECTRONIX ©2004-2016