Arduino Polska Forum
I2C - RTC PCF8563 - odczytywanie i dekodowanie wartości - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: I2C - RTC PCF8563 - odczytywanie i dekodowanie wartości (/watek-i2c-rtc-pcf8563-odczytywanie-i-dekodowanie-warto%C5%9Bci)



I2C - RTC PCF8563 - odczytywanie i dekodowanie wartości - Nick332 - 22-03-2016

Witam,
Zaczynam powoli rozumieć zasadę działania wymiany danych na magistrali I2C, dopiero dzisiaj ogarnąłem jak bez biblioteki ustawić czas mojemu RTC na PCF8563 i odczytać wartości z poszczególnych rejestrów, jednak nie mam zielonego pojęcia jak pozyskać wczytany i przeliczony czas. Nie rozumiem fragmentu biblioteki odpowiadającego za odczytywanie czasu (formatTime -> getTime). Poradnikami internetowymi oceniając jestem średnio-zaawansowany, więc proszę o wyrozumiałość i wytłumaczenie...

[BIBLIOTEKA] (GitHub)

Kod wczytujący przykładowe wartości i odczytujący je:


Kod:
#include <Wire.h>
#include <Rtc_Pcf8563.h>

Rtc_Pcf8563 rtc;

void setup() {
  Serial.begin(38400);
  Wire.begin();
  //Wczytywanie wartości
  /*Wire.beginTransmission(0x51);
  Wire.write(0x00);
  Wire.write(0x00);
  Wire.write(0x00);
  Wire.write(0x00);
  Wire.write(0x15);
  Wire.write(0x15);
  Wire.write(0x22);
  Wire.write(0x00);
  Wire.write(0x3);
  Wire.write(0x16);
  Wire.endTransmission();*/
}

void loop() {
  //Wyświetlanie czasu z pomocą biblioteki
  Serial.println(rtc.formatTime());
  
  //Serial.println(rtc.formatDate(0x01));
  
  //Odczyt wartości z rejestru
  Wire.beginTransmission(0x51);
  Wire.write(2);
  Wire.endTransmission();
  Wire.requestFrom(0x51, 1);
  int sec = Wire.read();
  Serial.println(sec);
  delay(1000);
}
[Obrazek: mwp99h.png]