Перейти к содержимому


Добро пожаловать на vip-cxema.org


Войти 

Регистрация
Добро пожаловать на vip-cxema.org

На форуме открыт раздел для гостей, в котором можно задать свои вопросы без регистрации http://forum.vip-cxe...prosy-i-otvety/

Зарегистрировавшись, вы сможете отправлять личные сообщения, получать уведомления об ответах в темах. Вам всегда могут отправить сообщение, снимутся многие ограничения.
 
Guest Message by DevFuse

Фотография

Часы реального времени ds1307

ds1307 PicBasic

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 9

  #1 Evgeniy

Evgeniy

    Администратор

  • Администраторы
  • Репутация
    243
  • 1 550 сообщений

Отправлено 28 Ноябрь 2017 - 07:49

Пример работы с часами реального времени

Прикрепленный файл  time.JPG   103,87К   10 Количество загрузок:

Скрытый текст

 

Прикрепленные файлы

  • Прикрепленный файл  ds1307.rar   116,53К   3 Количество загрузок:

  • VitalForce это нравится

  #2 VitalForce

VitalForce

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Репутация
    67
  • 382 сообщений

Отправлено 11 Декабрь 2017 - 13:48

Привет Жень. Случайно не завалялась формула вычисления температуры с датчика DS3231? Все что находил в тырнете не работает.

 

Проект скинул на почту.



  #3 Evgeniy

Evgeniy

    Администратор

  • Администраторы
  • Репутация
    243
  • 1 550 сообщений

Отправлено 11 Декабрь 2017 - 14:47

Вина работе завтра посмотрю.



  #4 Evgeniy

Evgeniy

    Администратор

  • Администраторы
  • Репутация
    243
  • 1 550 сообщений

Отправлено 12 Декабрь 2017 - 05:27

Посмотрел, там температуру вообще декодировать не надо! 

Считываем 2 байта с 11 адреса. В первом байте целое значение температуры, во втором одно из четырёх значений (0, 1, 2, 3). Это дело умножаем на 25, получим десятые и сотые доли градусов. Цена деления датчика 0,25 градусов.

Скрытый текст

В общем, код очень простой

 

 

Прикрепленные файлы

  • Прикрепленный файл  ds3232.zip   109,46К   3 Количество загрузок:

  • VitalForce это нравится

  #5 VitalForce

VitalForce

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Репутация
    67
  • 382 сообщений

Отправлено 12 Декабрь 2017 - 06:45

Спасибо Жень. Не обратил внимания на деления по 0,25.



  #6 YUF

YUF

    Новичок

  • Пользователи
  • Pip
  • Репутация
    0
  • 3 сообщений

Отправлено 15 Апрель 2019 - 07:28

Евгений приветствую!

 

Возникла потребность использовать часы реального времени.

Нашел Вашу статью, все сделал как описано, но в результате на дисплее получаю - 02:02:02

Не могу понять в чем проблема?

Подскажите пожалуйста.

 

Использую PIC16F876  и китайскую сборочку с DS1307

 

Я написал часть проги только для считывания (без установки времени), я так понимаю, что при подаче питания часы должны запуститься и начать отчет времени с 0:0:0, или им обязательно нужно сделать установку времени?

 

Я с I2C работаю впервые, пожалуйста помогите разобраться.



  #7 YUF

YUF

    Новичок

  • Пользователи
  • Pip
  • Репутация
    0
  • 3 сообщений

Отправлено 15 Апрель 2019 - 07:37

И еще забыл сказать, что при смене портов для SCL и SDA  показания меняются - либо 02:02:02 либо 04:04:04

Пробовал вешать на все порты, везде одно и то же.



  #8 Evgeniy

Evgeniy

    Администратор

  • Администраторы
  • Репутация
    243
  • 1 550 сообщений

Отправлено 15 Апрель 2019 - 10:04

Добрый день!

Порты ввода вывода правильно настроены? Тактовая частота, внутренние регистры микроконтроллера...? Можно попробовать в протэусе посмотреть работу прошивки.

А сам код где?



  #9 YUF

YUF

    Новичок

  • Пользователи
  • Pip
  • Репутация
    0
  • 3 сообщений

Отправлено 15 Апрель 2019 - 10:23

Если я правильно понимаю, то SCL - порт должен быть на передачу, а SDA на прием.

Тактовая 4 MHz - внешний кварц

А код работы I2C взят Ваш один в один.

 Один вопрос, в даташите указано, что для чтения данных из DS1307 бит RW должен быть установлен в 1. Вот тут мне не понятно, для чтения должна быть команда:

i2cread sda, scl, $D0, 0, [Sec,Mins,Hr,Day,Date,Mon,Yr]  или

...........................$D1............

 

У Вас $D1 используется для записи данных в часы.



  #10 Evgeniy

Evgeniy

    Администратор

  • Администраторы
  • Репутация
    243
  • 1 550 сообщений

Отправлено 15 Апрель 2019 - 16:37

Часы то хоть идут или постоянно отображается одна и та же информация?

Мой код рабочий на 100%, я его как есть использовал в другом проекте, проверено в железе.
Скинь хотя бы схему устройства (pic, индикатор, rtc), попробую написать код.





Темы с аналогичным тегами ds1307, PicBasic

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных