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

 
 
> STM32F107 и RTC.
Jenya7
сообщение Jan 14 2016, 09:15
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Насколько я понимаю есть только таймер. Хардварных регистров для секунд, минут, часов нету.
Меня сбил с толку рисунок в мануале. это я так понимаю надо реализовывать самому?



Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alechek
сообщение Jan 14 2016, 11:01
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Эт смотря для чего.
У меня в LPC наоборот, из полного времени RTC собираются секунды и получается time_t результат стандартной Си функции time(NULL).
Так как человеческий формат времени все равно нужен только человеку.
А если кому надо... экрану там, или протоколу какому-то - пущай сам разбирает.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jan 14 2016, 11:12
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(Alechek @ Jan 14 2016, 17:01) *
Эт смотря для чего.
У меня в LPC наоборот, из полного времени RTC собираются секунды и получается time_t результат стандартной Си функции time(NULL).
Так как человеческий формат времени все равно нужен только человеку.
А если кому надо... экрану там, или протоколу какому-то - пущай сам разбирает.

в любом случае нам нужны готовые объекты – секунды, минуты, часы, дни и так далее, скажем для планировщика. рутина в прерывании быстро апдейтирует их и потом они готовы к работе и их можно вызвать из любого модуля.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Jan 14 2016, 12:05
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(Jenya7 @ Jan 14 2016, 16:12) *
в любом случае нам нужны готовые объекты – секунды, минуты, часы, дни и так далее, скажем для планировщика. рутина в прерывании быстро апдейтирует их и потом они готовы к работе и их можно вызвать из любого модуля.

Смотрите... Но по мне так выгодней у планировщика время переводить и хранить в time_t. Сравнивать всяко быстрее будет.
mktime и gmtime никто не отменял, а памяти у камня не так много отъест.

А по поводу вызывать из любого модуля.... Придется делать операцию взятия времени атомарной. Ведь куча регистров, и все меняются..
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jan 14 2016, 12:23
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(Alechek @ Jan 14 2016, 18:05) *
Смотрите... Но по мне так выгодней у планировщика время переводить и хранить в time_t. Сравнивать всяко быстрее будет.
mktime и gmtime никто не отменял, а памяти у камня не так много отъест.

А по поводу вызывать из любого модуля.... Придется делать операцию взятия времени атомарной. Ведь куча регистров, и все меняются..

ну не вызову атомарно - потеряю секунду - я могу жить с этим. :)

посмотрел сейчас библиотеку timer.h. ну не знаю не знаю... как по мне, ничего она не добавляет. а функцию перевода времени в строку для вывода на терминал я напишу оптимальней.

Go to the top of the page
 
+Quote Post
Alechek
сообщение Jan 14 2016, 15:21
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(Jenya7 @ Jan 14 2016, 17:23) *
ну не вызову атомарно - потеряю секунду - я могу жить с этим. :)

не вызовешь атомарно - попадешь либо в будущее, либо в прошлое - смотря что первым копироваться будет, младшая часть времени, или старшая.
Пример: 23:59:59

Копируем секунды
/время увеличивается/
Копируем минуты
Копируем часы

Ура, мы опередили время на 59 секунд!


Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:10
Рейтинг@Mail.ru


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