Форум РадиоКот • Просмотр темы - Всё по DS1307 и прочим часам Dallas (Maxim)
Сообщения без ответов | Активные темы
Страница 7 из 17
[ Сообщений: 323 ]
... , , , , , , ...
Автор
Сообщение
BOB51
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Вт янв 06, 2015 12:49:24
Друг Кота
Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27Сообщений: 15123Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Си - великая вэщ... но иногда источник великого садомазохизма...
Увы, пользуюсь токмо асмом, мож кто из Сишников подскажет...
Вернуться наверх
Реклама
tantrum
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Вт янв 06, 2015 14:20:43
Мучитель микросхем
Карма: -1
Рейтинг сообщений: -2
Зарегистрирован: Сб фев 09, 2013 11:39:13Сообщений: 447Откуда: Украина, Марганец
Рейтинг сообщения: 0
Это делалось по аналогии, увиденного в интернете. С секундами/минутами/часами все работает, однако там все куда проще. После преобразования в двоичный код они сразу выводятся на дисплей и все...
Вернуться наверх
Реклама
HHIMERA
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Вт янв 06, 2015 14:25:26
Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34Сообщений: 4583Откуда: ЮВ
Рейтинг сообщения: 0
Цитата:
двоично-десятичный формат был преобразован в двоичный
У вас в восьмеричный... а не в двоичный...
00111 это 73 в десятичном...
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
Последний раз редактировалось HHIMERA Вт янв 06, 2015 14:26:26, всего редактировалось 1 раз.
Вернуться наверх
a_skr
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Вт янв 06, 2015 14:25:50
Карма: 22
Рейтинг сообщений: 114
Зарегистрирован: Пн июн 14, 2010 13:07:29Сообщений: 630Откуда: Жуковский
Рейтинг сообщения: 0
Зачем Вы числа в восьмеричном виде написали? 00010 = 8. Хотя бы 0b00010. А ещё понятней в десятичном (1,2,3,4...).
ps. опередили
И ещё, зачем из BCD переводить числа меньше 10-ти?
Вернуться наверх
tantrum
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Вт янв 06, 2015 14:40:29
Мучитель микросхем
Карма: -1
Рейтинг сообщений: -2
Зарегистрирован: Сб фев 09, 2013 11:39:13Сообщений: 447Откуда: Украина, Марганец
Рейтинг сообщения: 0
Как тогда мне считать данные? Точнее даже не считать, а что писать в условие if?
Вернуться наверх
Реклама
a_skr
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Вт янв 06, 2015 15:05:27
Карма: 22
Рейтинг сообщений: 114
Зарегистрирован: Пн июн 14, 2010 13:07:29Сообщений: 630Откуда: Жуковский
Рейтинг сообщения: 0
Так и писать, только числа правильные поставить.
Код:
DS1307Read (0 x03,&week); lcd_gotoxy (0 ,1 );if (week == 1 ) lcd_string ("SUN",3 ); else if (week == 2 ) lcd_string ("MON",3 ); else if (week == 3 ) lcd_string ("TUE",3 ); else if (week == 4 ) lcd_string ("WED",3 ); else if (week == 5 ) lcd_string ("THU",3 ); else if (week == 6 ) lcd_string ("FRI",3 ); else lcd_string ("SAT",3 );
Вернуться наверх
Реклама
tantrum
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Вт янв 06, 2015 19:24:00
Мучитель микросхем
Карма: -1
Рейтинг сообщений: -2
Зарегистрирован: Сб фев 09, 2013 11:39:13Сообщений: 447Откуда: Украина, Марганец
Рейтинг сообщения: 0
У меня в таком случае выводит "SAT" всегда. То есть дни недели не в виде 1-7... (пробовал ставить условие и на субботу, однако тогда не выводит ничего - подтверждение предыдущих слов)
Вернуться наверх
a_skr
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Вт янв 06, 2015 19:42:07
Карма: 22
Рейтинг сообщений: 114
Зарегистрирован: Пн июн 14, 2010 13:07:29Сообщений: 630Откуда: Жуковский
Рейтинг сообщения: 0
Возможно, при первом включении этот регистр не инициализирован и там ноль. Попробуйте туда записать значение от 1 до 7, а потом прочитать.
Вернуться наверх
tantrum
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Вт янв 06, 2015 19:44:33
Мучитель микросхем
Карма: -1
Рейтинг сообщений: -2
Зарегистрирован: Сб фев 09, 2013 11:39:13Сообщений: 447Откуда: Украина, Марганец
Рейтинг сообщения: 0
Спасибо за совет! Да, так заработало. Это гарантия, что все верно работает и будет считываться как нужно?
Вернуться наверх
Реклама
a_skr
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Вт янв 06, 2015 19:53:26
Карма: 22
Рейтинг сообщений: 114
Зарегистрирован: Пн июн 14, 2010 13:07:29Сообщений: 630Откуда: Жуковский
Рейтинг сообщения: 0
Выставьте день в семерку, время 23:59 и дождитесь переключения дня на единицу. Должно.
Вернуться наверх
tantrum
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Вт янв 06, 2015 20:00:26
Мучитель микросхем
Карма: -1
Рейтинг сообщений: -2
Зарегистрирован: Сб фев 09, 2013 11:39:13Сообщений: 447Откуда: Украина, Марганец
Рейтинг сообщения: 0
Выставил...
День не переключило...
Но дату прибавило.
Вот еще решил установить 28 декабря 2014 года, а оно мне:
залить картинку
Вернуться наверх
BOB51
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Ср янв 07, 2015 08:42:20
Друг Кота
Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27Сообщений: 15123Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Бывают кристаллы с поврежденной маской календаря...
И не только среди DSок - касается ВСЕХ типов RTC...
Проверь заведомо годным.
Насчет усяких симуляторов- инструкции на соответствующих ветках форума.
Вернуться наверх
tantrum
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Ср янв 07, 2015 11:20:51
Мучитель микросхем
Карма: -1
Рейтинг сообщений: -2
Зарегистрирован: Сб фев 09, 2013 11:39:13Сообщений: 447Откуда: Украина, Марганец
Рейтинг сообщения: 0
Всмысле? Я в протеусе проверяю, там нерабочих деталей нет) Под словом "симулятор" вы имели ввиду протеус?
Вернуться наверх
BOB51
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Ср янв 07, 2015 11:56:37
Друг Кота
Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27Сообщений: 15123Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Тогды точно "шпротоглюки" - надо искать ответ у спецов по шпроту.
Вернуться наверх
a_skr
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Ср янв 07, 2015 15:51:15
Карма: 22
Рейтинг сообщений: 114
Зарегистрирован: Пн июн 14, 2010 13:07:29Сообщений: 630Откуда: Жуковский
Рейтинг сообщения: 0
Вы, чего, издеваетесь, какой протеус??? в железе проверили? ps. я Вам дам под десяток глюков Протеуса.... а я думал, Вы всё-таки в железе... жаль...
Вернуться наверх
tantrum
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Ср янв 07, 2015 16:59:59
Мучитель микросхем
Карма: -1
Рейтинг сообщений: -2
Зарегистрирован: Сб фев 09, 2013 11:39:13Сообщений: 447Откуда: Украина, Марганец
Рейтинг сообщения: 0
Все знают, что в протеусе досточно ошибок. Однако время выводит вполне адекватно, почему оно должно ошибаться с датой? В железе нет возможности проверить, т.к. нет DS1307... Я вот не пойму, в ds1307 информация хранится в двоично-десятичном коде, однако день недели (и т.д.) мы записываем в десятичном формате...
Вернуться наверх
WiseLord
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Ср янв 07, 2015 18:00:31
Друг Кота
Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59Сообщений: 4884Откуда: Минск
Рейтинг сообщения: 0
А если не понимаете, то озвучьте разницу, чем отличается день недели (т.е., число, меньшее 8-ми) в двоично-десятичном формате от дня недели в десятичном? P.S. Протеус вполне адектватно работает с DS1307, за исключением одного момента, что при старте программы день недели он из системного времени считает не Пн..Вс = 1..7, а как Вс..Сб = 1..7.
Вернуться наверх
tantrum
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Ср янв 07, 2015 19:39:22
Мучитель микросхем
Карма: -1
Рейтинг сообщений: -2
Зарегистрирован: Сб фев 09, 2013 11:39:13Сообщений: 447Откуда: Украина, Марганец
Рейтинг сообщения: 0
Отличается ведь...
Вернуться наверх
WiseLord
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Ср янв 07, 2015 20:21:00
Друг Кота
Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59Сообщений: 4884Откуда: Минск
Рейтинг сообщения: 0
Вы меня не так поняли, наверное. Я имел в виду, что непреобразованное десятичное число и преобразованное в двоично-десятичный формат ничем не отличается, если оно меньше 10.
Скажем, если нам надо записать в микросхему дату например, 23.02.2015, мы пишем:
Байт 4: 23 число => записываем в ячейку памяти 0x23, т.е. число 35.
Байт 5: 02 месяц => записываем в ячейку памяти 0x01, т.е. число 02.
Байт 6: 15 год => записываем в ячейку памяти 0x15, т.е. число 21.
День недели понедельник - пишем 01 как 0x01, оно же всё равно 01.
А вот для Proteus-a понедельник - это число 2 в DS1307.
P.S. Покажите, что у вас в коде сейчас вместо
ранее приведённого ошибочного кода .
Вернуться наверх
tantrum
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Ср янв 07, 2015 23:27:08
Мучитель микросхем
Карма: -1
Рейтинг сообщений: -2
Зарегистрирован: Сб фев 09, 2013 11:39:13Сообщений: 447Откуда: Украина, Марганец
Рейтинг сообщения: 0
На данный момент работает такой вариант (знаю, использовать switch лучше, однако на самом деле день недели мне не нужен будет, это так, лишь бы во всем разобраться)
Код:
week_write = 5 ; DS1307Write (0x03 , week_write); DS1307Read (0x03 ,&week); lcd_gotoxy (0 ,1 ); if (week == 1 ) lcd_string ("SUN" ,3 ); else if (week == 2 ) lcd_string ("MON" ,3 ); else if (week == 3 ) lcd_string ("TUE" ,3 ); else if (week == 4 ) lcd_string ("WED" ,3 ); else if (week == 5 ) lcd_string ("THU" ,3 ); else if (week == 6 ) lcd_string ("FRI" ,3 ); else lcd_string ("SAT" ,3 );
Я специально назвал переменные по разному, чтобы убедиться в том, что данные записываются в микросхему и считываются.
tantrum писал(а):
0x23, т.е. число 35.
А почему это число 35? Нам ведь нужно 23...
Аналогично и с годом...
Вернуться наверх
Страница 7 из 17
[ Сообщений: 323 ]
... , , , , , , ...
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения