ds1307 нужна консультация

Тема в разделе "Arduino & Shields", создана пользователем atlon2006, 4 фев 2015.

  1. atlon2006

    atlon2006 Нерд

    День добрый!
    Вопрос:

    1. t1=RTC.get(DS1307_DATE, true);
    2. t1=RTC.get(DS1307_DATE, false);

    я не могу найти описания в чем отличие строк и что при этом происходит.
     
  2. X-Dron

    X-Dron Гик

    Хоть бы библиотеку указали, которую используете и где взяли.
    Экстрасенсов нет
     
  3. atlon2006

    atlon2006 Нерд

    DS1307.h
     
  4. X-Dron

    X-Dron Гик

    В библиотеке от seeedstudio нет такого метода.
    См. вложение.
     

    Вложения:

  5. Djvan

    Djvan Нерд

    То же вопросик по часикам:
    Код (Text):
    #include <DS1307new.h>

    uint16_t startAddr = 0x0000;            // Начальный адрес для хранения в NV-RAM
    uint16_t lastAddr;                      // новый адрес для хранения в NV-RAM
    uint16_t TimeIsSet = 0xaa55;            // По этой переменной проверяется то, что время не нужно устанавливать заново

    void setup(void)
    {
     
    // Запускаем наши часики (RTC)
    RTC.setRAM(0, (uint8_t *)&startAddr, sizeof(uint16_t));
      RTC.getRAM(54, (uint8_t *)&TimeIsSet, sizeof(uint16_t));
      if (TimeIsSet != 0xaa55)
      {
        RTC.stopClock();
         
        RTC.fillByYMD(2015,01,24); //устанавливаем дату
        RTC.fillByHMS(23,57,0); //устанавливаем время
        RTC.setTime();
        TimeIsSet = 0xaa55;
        RTC.setRAM(54, (uint8_t *)&TimeIsSet, sizeof(uint16_t));
        RTC.startClock();  }
      else
      { RTC.getTime();  }
      RTC.setCTRL();
      sensors.begin(); }
    Вот такой фрагмент кода - скажите - я прошил ардуино, при прошивке установил текущую дату и время - если уже часы были установлены - они не поменяют значение? Надо перед прошивкой вытащить батарейку?
     
  6. Максим B

    Максим B Гуру

    RTC.fillByYMD(2015,01,24); //устанавливаем дату
    RTC.fillByHMS(23,57,0); //устанавливаем время , вот эти строки при повторной компиляции надо закоментить и тогда время не собьется.
     
  7. Djvan

    Djvan Нерд

    Я имел ввиду немного другое - как я понял - при каждой компиляции - время устанавливалось то, которое указано в этих строках. Но вот вопрос про строчку uint16_t TimeIsSet = 0xaa55; ???? // По этой переменной проверяется то, что время не нужно устанавливать заново ??? Т.е. может время один раз установилось, но при повторных компиляциях оно не менялось?? И чтобы его поменять, надо для начала сбросить батарейку, потом прошить и все будет хоккей? А то у меня что то с контроллером - сегодня свет включился в 6 утра, хотя должен был в 9... Могло вообще время сбиться? Например при отключении света(хотя батарейка новая - такого быть по идее не должно)?
     
  8. Максим B

    Максим B Гуру

    А есть фото модуля RTC ??? Я на своем модуле не замечал чтобы время убегало. Лично ситуация была: батарейка новая, но напряжения нормального не давала и часы выключались при отключении света (ардуино из сети). Заменил батарейку все стало ок. По коду не такой код лично использовал.
     
  9. X-Dron

    X-Dron Гик

    Для того, чтобы не нужно было вытаскивать батарею для того, чтобы перевести время нужно сделать аналогично тому, как описано в конце статьи (вообще весь код можете забрать, чип RTC одинаковый)
    http://wiki.amperka.ru/время:rtc-индикатор
    время будет корректироваться раз при первом закуске после новой закачки.
    Я развлекался с часами DS3231, делал возможность корректировки времени с кнопок с секундной синхронизацией. У меня за 2-е суток погрешность хода не ушла более 1сек.
     
  10. Djvan

    Djvan Нерд

    Ну модуль стандартный - фотки нет, так как уже установлено в готовое устройство. батарею сегодня попробую поменять. Сами то часы не убегают - у меня походу отключался свет, и при включении, автоматически установилось новое время (хотя по идее там должно было устанавливаться, только если ранее не установлены часы - ну может кусок кода где потерял). В принципе сегодня попробую вынуть батарейку, перешить с установкой времени и сразу перешить с закоменченными строками установки - после этого уж точно не должно сбиваться... А насчет ухода времени - ну например у меня в бегущей строке с такими же модулями немного идут вперед, ну в год получается минут 7-9... Мне не страшно, так как в этом проекте +- 30 минут не страшно :) Просто когда сегодня включился аквариум в 6 утра - и ребенок проснулся - от жены много интересного услышал :):):) Спасибо всем за ответы.