#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. Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы только для ссылок могут стать недействительными, если связанная страница изменится.