• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z wbudowaną biblioteką Wire
#1
Hej,
mam problem z wbudowaną biblioteką Wire.
Gdy próbuję uruchomić example sketch z biblioteki DS1307RTC to dostaję taki output jak na screenshocie.

kod wkleję na wszelki wypadek jednak jest to w żaden sposób niezmodyfikowany example skech SetTime z biblioteki DS1307RTC:
Kod:
#include <Wire.h>
#include <TimeLib.h>
#include <DS1307RTC.h>

const char *monthName[12] = {
  "Jan", "Feb", "Mar", "Apr", "May", "Jun",
  "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
};

tmElements_t tm;

void setup() {
  bool parse=false;
  bool config=false;

  // get the date and time the compiler was run
  if (getDate(__DATE__) && getTime(__TIME__)) {
    parse = true;
    // and configure the RTC with this info
    if (RTC.write(tm)) {
      config = true;
    }
  }

  Serial.begin(9600);
  while (!Serial) ; // wait for Arduino Serial Monitor
  delay(200);
  if (parse && config) {
    Serial.print("DS1307 configured Time=");
    Serial.print(__TIME__);
    Serial.print(", Date=");
    Serial.println(__DATE__);
  } else if (parse) {
    Serial.println("DS1307 Communication Error :-{");
    Serial.println("Please check your circuitry");
  } else {
    Serial.print("Could not parse info from the compiler, Time=\"");
    Serial.print(__TIME__);
    Serial.print("\", Date=\"");
    Serial.print(__DATE__);
    Serial.println("\"");
  }
}

void loop() {
}

bool getTime(const char *str)
{
  int Hour, Min, Sec;

  if (sscanf(str, "%d:%d:%d", &Hour, &Min, &Sec) != 3) return false;
  tm.Hour = Hour;
  tm.Minute = Min;
  tm.Second = Sec;
  return true;
}

bool getDate(const char *str)
{
  char Month[12];
  int Day, Year;
  uint8_t monthIndex;

  if (sscanf(str, "%s %d %d", Month, &Day, &Year) != 3) return false;
  for (monthIndex = 0; monthIndex < 12; monthIndex++) {
    if (strcmp(Month, monthName[monthIndex]) == 0) break;
  }
  if (monthIndex >= 12) return false;
  tm.Day = Day;
  tm.Month = monthIndex + 1;
  tm.Year = CalendarYrToTm(Year);
  return true;
}

próbowałem już odinstalować i zainstalować od nowa całe środowisko, jednak otrzymuję dokładnie ten sam efekt.

podłączone jest raczej prawidłowo SCL do SCL, SDA do SDA, GDN do GDN, VCC do 5V.

środowisko:
OS: Xubuntu 22.04.3 LTS x86_64
Arduino: UNO R3
moduł RTC: DS1307
zainstalowana wersja arduino CLI: 1.8.19

wcześniej korzystałem z vscode i uploadowałem program przy pomocy CLI jednak jak nie mogłem sobie poradzić z tym błędem to uznałem, że wszystko usuwam i zainstalowałem od nowa Arduino IDE.
poza modułem RTC do arduino podłączone są analogowy czujnik temperatury LM35, trzy przyciski oraz LCD 2x16,  całość poprzez płytki stykowe.

czy macie jakieś pomysły co jeszcze mógłbym spróbować zrobić żeby móc normalnie ustawić czas w module RTC (a potem go odczytywać)?


Załączone pliki Miniatury
   
 
Odpowiedź
  


Wiadomości w tym wątku
Problem z wbudowaną biblioteką Wire - przez Iicytower - 14-02-2024, 23:25

Skocz do:


Przeglądający: 1 gości