ds1307 работает медленно на attiny85

#arduino #attiny

#arduino #attiny

Вопрос:

Кто-нибудь знает, почему ATtiny85 подключается к кристаллу ds1307, чтобы замедлить частоту обновления?

Новое значение времени обновления изменится на 4 секунды. На arduino (UNO) он работает нормально. Тактовая частота ATtiny (внутренняя 8 МГц)

Спасибо.

     #include <TinyWireM.h>
    #include "TinyRTClib.h"
    #include <Tiny4kOLED.h>

    RTC_DS1307 rtc; 


    void setup() {
      // put your setup code here, to run once:
      oled.begin();
      oled.clear();
      oled.on();
      oled.switchRenderFrame();
      rtc.begin();
      rtc.adjust(DateTime(2019, 3, 30, 15, 38, 0));

    }

    void loop(){
      if (! rtc.isrunning()) {
        return disconnectCrystal();
      }

      DateTime now = rtc.now();

      oled.fill(0xFF);
      oled.clear();
      oled.switchFrame();

      oled.setFont(FONT6X8);

      oled.setCursor(32, 2);
    ..  
      oled.print(now.hour(), DEC);
      oled.print(':');
      oled.print(now.minute(), DEC);
      oled.print(':');
      oled.print(now.second(), DEC);
    ..
      delay(1000);
    }
  

Комментарии:

1. если delay(1000); ожидание длится две секунды, у вас неправильные настройки платы для компилятора. Если данные RTC неверны, у вас проблема с кристаллом RTC. Ваша проблема мне не совсем понятна.

2. Результат был тот же. время получения отличалось от задержки цикла (может быть). Я меняю еще один кристаллический чип.

Ответ №1:

Попробуйте использовать millis () вместо delay ()

https://gist.github.com/kubilisr/eaf9d488e258a2175313fb38f6f80aa2

Комментарии:

1. Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы только для ссылок могут стать недействительными, если связанная страница изменится.