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

 
 
> вопрос по ds1307
MMP
сообщение Sep 15 2006, 09:32
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 43
Регистрация: 7-07-05
Из: г.Магнитогорск
Пользователь №: 6 618



Может кто посоветует как выполнить перевод часов.
Скажем регист часов содержит 0x22, что равно 22 часам.
hours = 0х22;
hours++;
но фишка в том, что в ds записывается и 0x25 и 0х29.
Приходится выполнять двойное преобразование:
BCD_DEC(hours); 0x22 -- 0x16
hours = DEC; //DEC возвращается BCD_DEC
hours++;
DEC_BCD_COR(Add_hr,hours); // обратное преобразование с записью в ds

к тому же писать функцию сравнения времени

Может возможно как-нить непосредстренно с ds, не прибегая к куче преобразований.

Сообщение отредактировал MMP - Sep 15 2006, 09:38
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
afad
сообщение Sep 20 2006, 10:11
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 212
Регистрация: 26-08-04
Пользователь №: 545



Цитата
А зачем выдерживать минимальную разницу 10 сек?
Не обязательно 10 секунд, можно и 2 сек, это как бы время неопределенности. Т.е. время передачи данных от хоста может быть каждый раз разным (у меня медленный радиоканал). Если мы каждый раз будем сразу устанавливать время в контроллере, то время в контроллере будет идти неравномерно (из за разного времени передачи), а длительность минуты будет 60 сек +- разница времени передачи от хоста к контроллеру. Чтобы все же в контроллере минута была точно 60 секунд, мы корректируем время не всякий раз после приема данных, а только в том случае, если оно отличается от эталонного на 10 сек (тогда одна минута будет не 60 секунд, зато все остальные точно 60).
Go to the top of the page
 
+Quote Post
Леонид Иванович
сообщение Sep 20 2006, 13:03
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 318
Регистрация: 21-07-06
Из: Минск
Пользователь №: 18 986



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


--------------------
Go to the top of the page
 
+Quote Post
afad
сообщение Sep 20 2006, 15:05
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 212
Регистрация: 26-08-04
Пользователь №: 545



Цитата(Леонид Иванович @ Sep 20 2006, 17:03) *
А зачем корректировать время каждый раз после приема данных? Автономные часы ведьтак быстро не убегают. Достаточно корректировать один раз в сутки, например.
Ну предположим, мы решили корректировать внутренние часы один раз в сутки в 00 часов. Первый раз включаем прибор, там произвольное время. Принимаем от хоста точное время, но не устанавливаем его, т.к. ждем, когда будет 00 часов. Нелогично! Или на хосте изменили время (зимнее/летнее или просто подкорректировали) то же самое, синхронизация произойдет только в назначенное время.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 20 2006, 15:27
Сообщение #5


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(afad @ Sep 20 2006, 19:05) *
Цитата(Леонид Иванович @ Sep 20 2006, 17:03) *

А зачем корректировать время каждый раз после приема данных? Автономные часы ведьтак быстро не убегают. Достаточно корректировать один раз в сутки, например.
Ну предположим, мы решили корректировать внутренние часы один раз в сутки в 00 часов. Первый раз включаем прибор, там произвольное время. Принимаем от хоста точное время, но не устанавливаем его, т.к. ждем, когда будет 00 часов. Нелогично! Или на хосте изменили время (зимнее/летнее или просто подкорректировали) то же самое, синхронизация произойдет только в назначенное время.

Ну дык корректируйте его при включении, а далее 1 раз в сутки.

Да, забыл сказать, дневную коррекцию делаем между 2 и 3 часами ночи
(ну или когда у нас там официально переводят часы зима/лето)
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Sep 21 2006, 06:20
Сообщение #6


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(singlskv @ Sep 20 2006, 18:27) *
(ну или когда у нас там официально переводят часы зима/лето)

В ноль часов по Гринвичу в ночь с последней субботы на последнее воскресенье марта или октября.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 21 2006, 06:51
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(IgorKossak @ Sep 21 2006, 09:20) *
В ноль часов по Гринвичу в ночь с последней субботы на последнее воскресенье марта или октября.

С такими обобщениями - осторожнее, если собираетесь эксплуатировать прибор за пределами
Украины. По Европейским часовывым поясам час перехода завязан на GMT+2, что лишь случайно для Украины совпадает с GMT 0, Для многих других стран расположенных дальше от Британии - привязан к 0 по локальному времени +2..3 часа. Даты перехода тоже разные для разных регионов в "нормальных" регионах разбегаются месяца Апрель/Март и Первая/Последняя неделя месяца. Для "ненормальных" регионов с "мусульманским" летоисчислением - вообще полный мрак встречается :-(.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MMP   вопрос по ds1307   Sep 15 2006, 09:32
- - defunct   В 48м была специальная команда десятичной коррекци...   Sep 16 2006, 00:07
- - afad   Можно и без преобразования, просто нужно сделать 3...   Sep 18 2006, 10:33
- - MMP   Тогда уж не три, а четыре if(hours<0x00){hours ...   Sep 18 2006, 13:12
|- - Леонид Иванович   Увеличение часов: hours++; if(hours == 0x24) { ho...   Sep 19 2006, 08:05
- - IgorKossak   Вот за что я не люблю часы с "человеческим...   Sep 19 2006, 08:42
|- - Леонид Иванович   Очень многие человеческие единицы измерения неудоб...   Sep 19 2006, 11:12
- - afad   А вот еще задача, кажущаяся простой, но пока не на...   Sep 19 2006, 15:29
|- - Леонид Иванович   А зачем выдерживать минимальную разницу 10 сек? У ...   Sep 19 2006, 16:30
- - IgorKossak   Ну разумеется я привёл частный случай, ибо реализа...   Sep 21 2006, 13:59
- - SS85   Можно корректировать вообще по службе точного врем...   Sep 23 2006, 19:40


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

 


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


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