RTC_DS1307 отказывается работать с ST7789 240x240 IPS

Здравствуйте.
В общем решил я научиться Ардуине и для начала создал небольшой проект в котором фигурирует модуль часов RTC_DS1307 и дисплей ST7789 240x240 IPS. Разобрался с кодом, все работало, думаю: “Пора в корпус собирать” - и рас, а не работает.
Я ничего не менял, а часы просто наотрез отказываются работать совместно с дисплеем. Я пробовал менять пины, модули и контроллеры, но проблема не уходит.
Сама суть проблемы в том, что:

-если я запускаю код ниже в неизменном виде - работает дисплей, выводится
“REAL TIME” и ничего более. Дата и время даже по нулям на дисплее не появляется, а в мониторе порта, раз в секунду, высвечивается
“00-00-2000 00 00 00”

-если же я закоментирую строчку кода номер 41 “lcd.init(SCR_WD, SCR_HT);”, то по понятным причинам дисплей не работает, но работают часы и корректно выводят в монитор порта установленные дату и время.

Я уже что только не пробовал, чтобы это исправить. У кого была такая проблема, поделитесь решением.
PS: Извините, я не очень грамотный

/*
 ST7789 240x240 IPS

 GND -> GND
 VCC -> VCC
 SCL -> D13
 SDA -> D11
 RES -> D8 or any digital
 DC  -> D7 or any digital
 BLK -> D6
-----------------------------
RTC_DS1307

VCC и GND соответственно
pin_SW_SDA -> 10
pin_SW_SCL -> 12
*/

/*
Задаются библиотеки и константы
*/
#define pin_SW_SDA 10
#define pin_SW_SCL 12
#include <iarduino_RTC.h>
iarduino_RTC watch(RTC_DS1307);

#define COMPATIBILITY_MODE
#define CS_ALWAYS_LOW
#define TFT_DC    7
#define TFT_RST   8 
#define SCR_WD   240
#define SCR_HT   240
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Arduino_ST7789_Fast.h>
Arduino_ST7789 lcd = Arduino_ST7789(TFT_DC, TFT_RST);

void setup(void) 
{
/*Код дисплея*/
  lcd.init(SCR_WD, SCR_HT);
  lcd.fillScreen(BLUE);
  lcd.setCursor(0, 0);
  lcd.setTextColor(WHITE, BLUE);
  lcd.setTextSize(3);
  lcd.println("REAL TIME");
  lcd.println();

/*Код часов*/
  delay(300);
  Serial.begin(9600);
  watch.begin();
  watch.settime(00, 04, 00, 21, 11, 22, 2);
 }

void loop()
{
/*Здесь реальные или заданные
 дата и время выводятся на дисплей и в монитор порта*/
  if(millis()%1000==0)
    {
      lcd.println(watch.gettime("d-m-Y"));
      lcd.println();
      lcd.print(watch.gettime("H")); lcd.println(" h");
      lcd.print(watch.gettime("i")); lcd.println(" m");
      lcd.print(watch.gettime("s")); lcd.println(" s");
      Serial.println(watch.gettime("d-m-Y   H i s"));
      lcd.setCursor(0, 0);
      lcd.println();
      lcd.println();
      delay(1);
      }
}

Эти часы не имеют никакого отношения к этому дисплею, они никак не пересекаются. Отказываются они работать не с дисплеем, а с Вашим кодом и Вашей схемой. Если Вы опубликуете схему и дадите ссылки на библиотеки, то можно будет посмотреть.

И, да, кстати, что за ардуина у Вас?

Это вот зачем ?

Зря Вы так. Сейчас начнутся объяснения и опять срач … я не зря схему запросил.

такая работа с миллис - прямой путь к проблемам.

Что касается часов - к каким пинам они реально подключены? Неужели к

А библиотека об этом знает?


Еще сть видео работы проекта в полном сборе, но я не знаю как отправить

Да, так сам пример из библиотеки работает

Так к пятнице готовимся.

Задает пины SDA и SCL для часов

Шина SPI SPI -Serial Peripheral Interface, краткое руководство - Описания, примеры, подключение к Arduino
Обратите внимание на номера пинов.

Я Вас просил ссылки на библиотеки (не какие-то с такими же названиями), а именно Ваши. Поскольку пока это выглядит как бред. В той версии, что у меня никакие пины для часов не задаются - она работает со стандартными.

@Yogurt, перенесите часы с 12-го пина на какой-нибудь другой.
А лучше всего вообще использовать аппаратный i2c.

тут нарисовался гораздо раньше, а именно со строки №24. Библиотеки хуже я ещё не видел. Вы видели как в этой библиотеке реализована функция gettime, которой ТС активно пользуется? Особенно доставляет, когда люди не сразу печатают (как ТС), а сначала делают несколько вызовов gettime, а потом пытаются все результаты напечатать одним махом. Во веселье!

Тем более, что библиотека (по крайней мере та версия, что у меня) только его и использует :slight_smile:

не, там куча опций
https://wiki.iarduino.ru/page/i2c_connection/

@Yogurt
подвожу небольшие итоги:
В первую очередь вам надо разобраться подключениями

  • переключить часы на аппаратную шину I2c и лучше вообще сменить библиотеку
  • проверить подключение дисплея. Вы используете библиотеку для дисплея, которая работает по аппаратному SPI. При этом на схеме у вас дисплей подключен явно не к SPI-пинам. Я не понимаю, как он могу у вас работать (как вы утверждаете)

К SPI. Просто он односторонний обмен исповедует и про CS ничего не знает. Но библиотека-то (SPI) в курсе про D12 и D10.

Мож там чего поменялось, типа новые версии. Я ведь не зря ТС попросил ссылки на библиотеки, только он плюёт на просьбу. В той версии, что у меня (а я смотрю текст, а не вики) ничего такого нет.

Долго искал где библиотеки хранятся, хотел сюда переслать
Контроллер Arduino nano на MEGA328P
RTC

SPI

GFX

ST7789