DS1307 как запустить ?

Ответить
fefar51702
Рядовой
Сообщения: 51
Зарегистрирован: 26.06.2022{, 07:35}
Репутация: 2
Имя: Валера

DS1307 как запустить ?

#1

Сообщение fefar51702 » 17.02.2024{, 06:08}

уже год как часы не работают
кто нибудь разобрался как исправить код чтобы они заработали
после заливки показывают 00:00:80 и стоят на месте
IMG_20240217_100527.jpg

sava74
Рядовой
Сообщения: 18
Зарегистрирован: 01.06.2018{, 19:52}
Репутация: 5
Имя: Илья

DS1307 как запустить ?

#2

Сообщение sava74 » 17.02.2024{, 06:16}

Обычно с ними проблем нету.
Проект хотелось бы увидеть для начала.

fefar51702
Рядовой
Сообщения: 51
Зарегистрирован: 26.06.2022{, 07:35}
Репутация: 2
Имя: Валера

DS1307 как запустить ?

#3

Сообщение fefar51702 » 17.02.2024{, 06:28}

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

2024-02-17_102706.png

sava74
Рядовой
Сообщения: 18
Зарегистрирован: 01.06.2018{, 19:52}
Репутация: 5
Имя: Илья

DS1307 как запустить ?

#4

Сообщение sava74 » 17.02.2024{, 06:32}

В восьмой версии новые библиотеки, там походу косяк есть
попробуй в версии FLProg 7.5.2

fefar51702
Рядовой
Сообщения: 51
Зарегистрирован: 26.06.2022{, 07:35}
Репутация: 2
Имя: Валера

DS1307 как запустить ?

#5

Сообщение fefar51702 » 17.02.2024{, 06:50}

не какая то хрень не ведомая
я уже и билиотеку по откатывал до версии 1,14
и флпрог запустил 7,3,8
бесполезно

Аватара пользователя
montirovka
Сержант
Сообщения: 224
Зарегистрирован: 15.02.2021{, 16:16}
Репутация: 48
Откуда: Геленджик
Имя: Сергей

DS1307 как запустить ?

#6

Сообщение montirovka » 17.02.2024{, 07:04}

Так а проект можно увидеть? Почему 80 секунд ? Шину I2C сканировали? Адрес 1307 и модуля с 24С32 виден? Как правило осмотр платы с увеличителем позволяет выявить более быстро неисправность. Плата DS1307 c 24C32? Батарейку меняли? Ноги кварцевого резонатора в норме? Квары бывает выходят из строя. Тараканы ни чего не съели ( не накакали)? Может просто платка вышла из строя?
P.S. Адрес часов 0х68, адрес EEPROM 0х50.
Люблю учиться на чужих ошибках.

fefar51702
Рядовой
Сообщения: 51
Зарегистрирован: 26.06.2022{, 07:35}
Репутация: 2
Имя: Валера

DS1307 как запустить ?

#7

Сообщение fefar51702 » 17.02.2024{, 08:51}

с адресами нормально всё
2024-02-17_124655.png
дело не в модуле
у меня и обычная расыпуха 1307 припаяная к есп не запускается так же нехочет

Аватара пользователя
montirovka
Сержант
Сообщения: 224
Зарегистрирован: 15.02.2021{, 16:16}
Репутация: 48
Откуда: Геленджик
Имя: Сергей

DS1307 как запустить ?

#8

Сообщение montirovka » 17.02.2024{, 08:56}

Допытался что ESP. А где проект?
Люблю учиться на чужих ошибках.

sava74
Рядовой
Сообщения: 18
Зарегистрирован: 01.06.2018{, 19:52}
Репутация: 5
Имя: Илья

DS1307 как запустить ?

#9

Сообщение sava74 » 17.02.2024{, 09:01}

fefar51702, пришли скетч что в IDE компилируется, посмотрим что там.

Аватара пользователя
montirovka
Сержант
Сообщения: 224
Зарегистрирован: 15.02.2021{, 16:16}
Репутация: 48
Откуда: Геленджик
Имя: Сергей

DS1307 как запустить ?

#10

Сообщение montirovka » 17.02.2024{, 09:26}

Так где инкубатор с часами? А почему UNO?
2024-02-17_09-24-58.png
Люблю учиться на чужих ошибках.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

DS1307 как запустить ?

#11

Сообщение rw6cm » 17.02.2024{, 10:09}

fefar51702 писал(а):
17.02.2024{, 06:08}
после заливки показывают 00:00:80 и стоят на месте
Похоже часы не настроены.
Запишите в часы правдоподобные данные, и все должно работать
2024_02_17_10_08_39_FLProg_8.2.3.png
2024_02_17_10_08_39_FLProg_8.2.3.png (5.8 КБ) 476 просмотров
Win10-64, FLProg (portable)

fefar51702
Рядовой
Сообщения: 51
Зарегистрирован: 26.06.2022{, 07:35}
Репутация: 2
Имя: Валера

DS1307 как запустить ?

#12

Сообщение fefar51702 » 18.02.2024{, 04:36}

учитывая что есть вопросы то блок не кто не проверял вчера
а учитывая что прошол уже почти год то блоком никто и не пользуется

montirovka, дело не в проекте если сам блок не работает
я же скинул скрин где только блок и уарт с ним что бы не было потом вопросов по якобы конфликту блоков
про ЕСП я писал что и на ней тоже блок не работает как и на ардуино

rw6cm, это не правельное размышление ибо все часы стартуют после заливки с 00:00:00
будь то 3231 1302 1307 либо системные часы на мк

я залил пример из библиотеки и всё работает
СпойлерПоказать

Код: Выделить всё

// Date and time functions using a DS1307 RTC connected via I2C and Wire lib
#include "RTClib.h"

RTC_DS1307 rtc;

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

void setup () {
  Serial.begin(57600);

#ifndef ESP8266
  while (!Serial); // wait for serial port to connect. Needed for native USB
#endif

  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    Serial.flush();
    while (1) delay(10);
  }

  if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running, let's set the time!");
    // When time needs to be set on a new device, or after a power loss, the
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }

  // When time needs to be re-set on a previously configured device, the
  // following line sets the RTC to the date & time this sketch was compiled
  // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  // This line sets the RTC with an explicit date & time, for example to set
  // January 21, 2014 at 3am you would call:
  // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}

void loop () {
    DateTime now = rtc.now();

    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(" (");
    Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
    Serial.print(") ");
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();

    Serial.print(" since midnight 1/1/1970 = ");
    Serial.print(now.unixtime());
    Serial.print("s = ");
    Serial.print(now.unixtime() / 86400L);
    Serial.println("d");

    // calculate a date which is 7 days, 12 hours, 30 minutes, and 6 seconds into the future
    DateTime future (now + TimeSpan(7,12,30,6));

    Serial.print(" now + 7d + 12h + 30m + 6s: ");
    Serial.print(future.year(), DEC);
    Serial.print('/');
    Serial.print(future.month(), DEC);
    Serial.print('/');
    Serial.print(future.day(), DEC);
    Serial.print(' ');
    Serial.print(future.hour(), DEC);
    Serial.print(':');
    Serial.print(future.minute(), DEC);
    Serial.print(':');
    Serial.print(future.second(), DEC);
    Serial.println();

    Serial.println();
    delay(3000);
}
2024-02-18_082442.png
а вот из флпрога запуск не работает
СпойлерПоказать

Код: Выделить всё

#include <Wire.h>
#include "flprogUtilites.h"
struct _I2CRealRimeClockTime
{
    byte seconds = 0;
    byte minutes = 0;
    byte Hours = 0;
    byte weekday = 0;
    byte day = 0;
    byte month = 0;
    byte year = 0;
    unsigned long startTime = 0;
}
;
_I2CRealRimeClockTime _RTC1;
String _RTC1_GetTime1_StrOut;
unsigned long _stou1 = 0UL;
void setup()
{
    Wire.begin();
    delay(10);
    Wire.beginTransmission(68);
    Wire.write(0x0E);
    Wire.write(B00000000);
    Wire.write(B10001000);
    Wire.endTransmission();
    _RTC1.startTime = millis() - 1000;
    _startUart0();
    _stou1 = millis();
}
void loop()
{
    //Плата:1
    get3231Date(0x68, &_RTC1);
    _RTC1_GetTime1_StrOut = (_convertRealTimeClockNumberToString(_RTC1.Hours))+
    String(":")+
    (_convertRealTimeClockNumberToString(_RTC1.minutes))+
    String(":")+
    (_convertRealTimeClockNumberToString(_RTC1.seconds));
    if (!(0))
    {
         if (flprog::isTimer(_stou1, 1000)) 
        {
            Serial.println(_RTC1_GetTime1_StrOut);
            _stou1 = millis();
        }
    }
     else 
    {
        _stou1 = millis();
    }
}
void get3231Date(int addres, struct _I2CRealRimeClockTime *timeStruct)
{
    if (!(flprog::isTimer ((timeStruct ->startTime), 250))) 
    {
        return;
    }
    Wire.beginTransmission(addres);
    Wire.write(0x00);
    Wire.endTransmission();
    Wire.requestFrom(addres, 7);
    if (Wire.available()) 
    {
        byte  seconds = Wire.read();
        byte minutes = Wire.read();
        byte hours   = Wire.read();
        byte day     = Wire.read();
        byte date    = Wire.read();
        byte month   = Wire.read();
        byte year    = Wire.read();
        timeStruct -> seconds = (((seconds & B11110000) >> 4) * 10 + (seconds & B00001111));
        timeStruct -> minutes = (((minutes & B11110000) >> 4) * 10 + (minutes & B00001111));
        timeStruct -> Hours = (((hours & B00110000) >> 4) * 10 + (hours & B00001111));
        timeStruct -> weekday = (day & B00000111);
        timeStruct -> day    = (((date & B00110000) >> 4) * 10 + (date & B00001111));
        timeStruct -> month   = (((month & B00010000) >> 4) * 10 + (month & B00001111));
        timeStruct -> year    = (((year & B11110000) >> 4) * 10 + (year & B00001111));
    }
     timeStruct ->startTime = millis();
}
String _convertRealTimeClockNumberToString(byte value)
{
    if (value > 9) 
    {
        return String(value, DEC);
    }
    return (String("0") + String(value, DEC));
}
void _startUart0()
{
    int code= 6;
    Serial.begin(9600, (flprog::serialModeFromInt(code)));
}
но что скопировать из примера в флпрог я не понимаю что бы оно тоже заработало

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

DS1307 как запустить ?

#13

Сообщение rw6cm » 18.02.2024{, 09:02}

fefar51702 писал(а):
18.02.2024{, 04:36}
rw6cm, это не правельное размышление ибо все часы стартуют после заливки с 00:00:00
будь то 3231 1302 1307 либо системные часы на мк
я не размышляю, а говорю как есть. флпрог не использует библиотеки для часов.
и по факту если часы 1307 сбросить (поменять батарейку или вообще без нее) то часы не запустятся,
будут секунды на 80., пока не введешь в них адекватные данные. С 3231 такого нет, они стартуют с 0.
Win10-64, FLProg (portable)

Аватара пользователя
montirovka
Сержант
Сообщения: 224
Зарегистрирован: 15.02.2021{, 16:16}
Репутация: 48
Откуда: Геленджик
Имя: Сергей

DS1307 как запустить ?

#14

Сообщение montirovka » 18.02.2024{, 09:54}

fefar51702, проверьте, это работает? Если работает то фото можно что у вас на экране 1601.
DS3231 и без батарейки работает.
часы.jpg
часы.jpg (4.54 КБ) 347 просмотров
Вложения
часы.flp
(45.7 КБ) 7 скачиваний
Люблю учиться на чужих ошибках.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

DS1307 как запустить ?

#15

Сообщение rw6cm » 18.02.2024{, 10:14}

montirovka,
Речь конкретно про 1307. С 3231 нет проблем.
Скорей всего есть нюансы между этими часами, а флп использует один и тот же код для них.
Win10-64, FLProg (portable)

Аватара пользователя
montirovka
Сержант
Сообщения: 224
Зарегистрирован: 15.02.2021{, 16:16}
Репутация: 48
Откуда: Геленджик
Имя: Сергей

DS1307 как запустить ?

#16

Сообщение montirovka » 18.02.2024{, 10:25}

В FLProg ткните 1307. Неужели сложно? Или ошибка выскакивает?
Ниже под DS1307.
Вложения
часы.flp
(69.04 КБ) 8 скачиваний
Люблю учиться на чужих ошибках.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

DS1307 как запустить ?

#17

Сообщение rw6cm » 18.02.2024{, 10:49}

montirovka писал(а):
18.02.2024{, 10:25}
Неужели сложно? Или ошибка выскакивает?
Если добавить настройку секунд к вашему проекту (то что предлагал постами выше),
то часы начнут нормально работать.
а так:
IMG_6972.JPG
По факту достаточно установка только секунд в 0, чтобы они стали нормально работать
Win10-64, FLProg (portable)

OLGA
Сержант
Сообщения: 100
Зарегистрирован: 04.08.2021{, 09:21}
Репутация: 0
Имя: Павел

DS1307 как запустить ?

#18

Сообщение OLGA » 18.02.2024{, 11:50}

может поможет.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

DS1307 как запустить ?

#19

Сообщение rw6cm » 18.02.2024{, 12:38}

fefar51702,
Можно один раз сбросить секунды и они работают без проблем до замены батарейки или нештатного глюка
Как вариант можно один раз при включении питания проверять не больше ли 60 значение секунд,
если больше сбрасывать на ноль. тогда можно не беспокоится о батарейке.
2024_02_18indow.png
2024_02_18indow.png (8.57 КБ) 269 просмотров
Win10-64, FLProg (portable)

fefar51702
Рядовой
Сообщения: 51
Зарегистрирован: 26.06.2022{, 07:35}
Репутация: 2
Имя: Валера

DS1307 как запустить ?

#20

Сообщение fefar51702 » 18.02.2024{, 20:18}

кстати да после загрузки 00:00:80
если пнуть установку то начинают тикать от 00:00:00
странно но раньше же они сразу у меня начинали работать от 00:00:00 вроде как иначе я бы заметил что они стоят на месте
или китайцы с батарейкой присылали вставленой не помню уже

Ответить

Вернуться в «Помогите, а то я "нимагу"»