Например TDA7294

Форум РадиоКот • Просмотр темы - Всё по DS1307 и прочим часам Dallas (Maxim)
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср июл 02, 2025 06:13:58

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 323 ]     ... , , , 8, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Ср янв 07, 2015 23:50:24 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
Число 23 хранится в микросхеме в двоично-десятичном формате. Т.е 2 = 0b0010 и 3 = 0b0011, т.е. реально в регистре микросхемы лежит число 0b00100011 = 0x23 = 35.

Для чисел меньше 10 всё совпадает, потом начинается разница:

Код:
 0 = 0b00000000 = 0x00 = 0
 1 = 0b00000001 = 0x01 = 1
..
 9 = 0b00001001 = 0x09 = 9
10 = 0b00010000 = 0x10 = 16
11 = 0b00010001 = 0x11 = 17
и т.д.
На каждую десятку нарастает лишняя шестёрка.

Раньше Вы писали совсем неправильно, например
Код:
 else if (week == 00011) lcd_string("TUE",3);

Тут нужно было писать не 00011, а 0b00011. В языке C числовая константа, начинающаяся с 0 интерпретируется как восьмеричная (равно как 0b - двоичная, 0x - шестнадцатеричная). Поэтому, 11 в восьмеричной системе - это девятка. Естественно, такого дня недели нет. Такая неправильная запись срабатывала бы только для воскресенья, которое = 1 во всех системах счисления. Остальные дни давали бы числа большие или равные 8 (010 = 8, 011 = 11, 0100 = 64 и т.д).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Чт янв 08, 2015 00:24:36 
Мучитель микросхем
Аватар пользователя

Карма: -1
Рейтинг сообщений: -2
Зарегистрирован: Сб фев 09, 2013 11:39:13
Сообщений: 447
Откуда: Украина, Марганец
Рейтинг сообщения: 0
А в DS1307 можно записывать данные чтоли в двоичной системе, шестнадцатеричной и десятичной...?
Так а как же тогда записать, например, ту же дату 23.02.2015, чтобы потом ее прочитать, вывести на экран и увидеть именно 23.02.2015?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Чт янв 08, 2015 06:13:25 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
Чтобы записать туда 23.02.2015, нужно:
- в ячейку даты записать 0x23 = 35,
- в ячейку месяца записать 0x02 = 2,
- в ячейку года записать 0x15 = 21.
При чтении
- прочитав из даты 35, преобразовать 32 = 0x23 в число 23,
- прочитав из месяца 2, преобразовать 2 = 0x02 в число 2,
- прочитав из года 21, преобразовать 21 = 0x15 в число 15.
Прямое и обратное преобразование можно сделать теми же макросами
Код:
#define D2BD(x)  (((x / 10) << 4) + (x % 10))
#define BD2D(x)  ((x >> 4) * 10 + (x & 0x0F))

Например для даты получатся вычисления
Код:
D2BD(23) = (((23 / 10) << 4) + (23 % 10)) = ((2 << 4) + 3) = 32 + 3 = 35
BD2D(35) = ((35 >> 4) * 10 + (35 & 0x0F)) = 2 * 10 + 3 = 23


Последний раз редактировалось WiseLord Чт янв 08, 2015 10:02:52, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Чт янв 08, 2015 09:56:44 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6011
Откуда: Minsk
Рейтинг сообщения: 0
WiseLord писал(а):
0x23 = 32

Это в какой арифметике ? По-моему, 0x23 = 35


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Чт янв 08, 2015 10:02:24 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
Да, извините, сверху опечатался, снизу в примере с кодом было верно. Сейчас поправлю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Чт янв 08, 2015 12:17:10 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1466
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15058
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
tantrum писал(а):
А в DS1307 можно записывать данные чтоли в двоичной системе, шестнадцатеричной и десятичной...?
Так а как же тогда записать, например, ту же дату 23.02.2015, чтобы потом ее прочитать, вывести на экран и увидеть именно 23.02.2015?


А даташит хош почитать?
Вложение:
ds1307map.pdf [16.1 KiB]
Скачиваний: 276

неуж-то окончательно на укрруине молодеж...
:cry:


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Чт янв 08, 2015 12:34:08 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 2
Писать-то и читать можно хоть в какой системе. Другое дело, что сами часы считают время и дату в двоично-десятичной.
То есть, после 0x09 в часах наступает не 0x0A, а 0x10.
То есть, если читать оттуда без преобразований в десятичной системе (записав в ней же), то после 9-й секунды сразу наступает 16-я и т.д.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Пт янв 09, 2015 10:37:35 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1466
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15058
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
В то же время там в каждой ячейке свой модуль счета и служебные добавки - в любом случае первичное выделение информации с последующим преобразованием. То же касается и обратного процесса - записи в ячейки часов/календаря - предварительная обработка данных, добавление сохраненных служебных флажков и уж после того - запись в ОЗУ.
Так что простой подход к "чистой" системе счисления тут может и не дать результата...
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Пт янв 09, 2015 15:02:58 
Мучитель микросхем
Аватар пользователя

Карма: -1
Рейтинг сообщений: -2
Зарегистрирован: Сб фев 09, 2013 11:39:13
Сообщений: 447
Откуда: Украина, Марганец
Рейтинг сообщения: 0
Понял) Спасибо за объяснение.
Однако дата не переключается по окончании суток...

BOB51

В 56 лет уже пора бы головой думать, прежде чем писать всякое.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Пт янв 09, 2015 15:29:56 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
А всё написано правильно.

Скажем, 7-й бит секунд - остановка часов. Если писать туда 0b1xxxxxxx - часы остановятся. Если просто писать туда секунды - мы будет всегда затирать этот бит, поэтому по большому счёту корректнее учитывать его состояние, а не просто затирать.

Аналогично - 6 бит часов, отвечающий за 12/24 режим. Если просто писать туда время - мы затрём этот бит и выйдем в 24-часовой режим. Хотя кому-то может понадобиться 12-часовой с PM/AM - и тут уже без учёта бита не обойтись.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Пт янв 09, 2015 16:22:55 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 156
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
WiseLord, операции с маской неведомы ?
Так же неведома работа со строками ASСII , что в случае с bcd прямо таки и напрашивается вместо магически-навороченных манипуляций .
ЗЫ. дедушку BOB51 не трожьте , он навечно погряз в асме 51го ...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Пт янв 09, 2015 17:08:46 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1466
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15058
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
И чего ж я неверного написал? 8)

dosikus - это верно "погряз в асме", но разве ж только 51-й? :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Пт янв 09, 2015 17:21:50 
Мучитель микросхем
Аватар пользователя

Карма: -1
Рейтинг сообщений: -2
Зарегистрирован: Сб фев 09, 2013 11:39:13
Сообщений: 447
Откуда: Украина, Марганец
Рейтинг сообщения: 0
WiseLord писал(а):
А всё написано правильно.

Скажем, 7-й бит секунд - остановка часов. Если писать туда 0b1xxxxxxx - часы остановятся. Если просто писать туда секунды - мы будет всегда затирать этот бит, поэтому по большому счёту корректнее учитывать его состояние, а не просто затирать.

Аналогично - 6 бит часов, отвечающий за 12/24 режим. Если просто писать туда время - мы затрём этот бит и выйдем в 24-часовой режим. Хотя кому-то может понадобиться 12-часовой с PM/AM - и тут уже без учёта бита не обойтись.

А к чему вы это написали?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Пт фев 27, 2015 10:51:45 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вс дек 08, 2013 14:57:33
Сообщений: 157
Откуда: Россия, Иваново
Рейтинг сообщения: 0
Здравствуйте. Хочу вот приобрести часики
Цитата:
http://www.chipdip.ru/product/ds1307z/
, а названии указано " DS1307Z+T&R, Часы реального времени, будильник, ОЗУ 56-бит, последовательный интерфейс, 3В, 500нА"
А как там реализована функция будильника? Неужели туда можно ввести текущее время, целевое время, и, по достижении первым второго часы что то сделают (они же не могут в роли Master выступать?)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Пт фев 27, 2015 11:33:11 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19693
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
4elovek37 писал(а):
А как там реализована функция будильника? Неужели туда можно ввести текущее время, целевое время, и, по достижении первым второго часы что то сделают (они же не могут в роли Master выступать?)
У 1307 вроде нет будильника. У 1337 есть, там отдельная нога прерывания.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Пт фев 27, 2015 12:37:35 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вс дек 08, 2013 14:57:33
Сообщений: 157
Откуда: Россия, Иваново
Рейтинг сообщения: 0
Gudd-Head, спасибо, понял. А к ds1307 можно 32768 кварц напрямую цеплять, или придется добавочно ставить 2 конденсатора?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Пт фев 27, 2015 12:47:55 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19693
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
Напрямую, там же даже в ДШ нарисовано. И лучше кварц с нагрузочной ёмкостью 12,5 пФ.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Чт мар 05, 2015 10:54:34 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вс дек 08, 2013 14:57:33
Сообщений: 157
Откуда: Россия, Иваново
Рейтинг сообщения: 0
Спасибо за советы. Запрограммировал SMBus, вроде бы даже работает :) По крайней мере записать - прочитать записанное из регистра часов получается.
Пишу интерфейс для их настройки, по задумке пользователь вводит Минуты-Часы-Дата-Месяц-Год-ОК, дальше часы стартуют стартуют с 0 секунды.
Возникла непонятка с днем недели (который 1-7) - если я его инициализирую нулями, а все остальное выставлю корректно - часы будут нормально идти? Он случайно сам не сможет настроиться (про календарь в ДШ ничего не видел, но мало ли) - что бы мне потом из него можно было день недели прочитать? Или все таки для этого придется заставлять юзера вводить и этот параметр?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Чт мар 05, 2015 11:12:27 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19693
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Чо-й то мне кажется, что это обычный счётчик от 1 до 7 и на остальной календарь ему пох, он просто тикает каждую полночь. И если вы его нулём шарахните, он будет считать так: 0-1-2-...-7-1-...
Цитата:
пользователь вводит Минуты-Часы-Дата-Месяц-Год-ОК
Это жестоко. Обычно время отдельно, дата отдельно.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
СообщениеДобавлено: Чт мар 05, 2015 12:01:54 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вс дек 08, 2013 14:57:33
Сообщений: 157
Откуда: Россия, Иваново
Рейтинг сообщения: 0
Цитата:
Это жестоко. Обычно время отдельно, дата отдельно.

Я заставлю пользователя страдать (тут должен звучать смех доктора зло) :)))
А если серьезно, то данную операцию ему придется проделать всего один раз, при первом запуске устройства. Дальше при любом включении устройство будет забирать дату время из часов. Думаю в ОЗУ у них флаг разместить, его и будем спрашивать.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 323 ]     ... , , , 8, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y