RTC 4543 - Uhrzeit lässt sich nicht setzen - Arduino UNO

OP #6843303
Lesenswert?

Hallo Zusammen,
gerne möchte ich mit meinem Arduino UNO mit LCD-Keyshield einen RTC 4543 
setzen.
Folgende Libary habe ich in Verwendung:
https://github.com/monoxit/RTC4543lib

Folgene Pinbelegung ist eingestellt:
const uint8_t dataPin = 12; //Digitaler GPIO (auch mit MISO Funktion)
const uint8_t clkPin = 13;  //Digitaler GPIO (auch mit SCK  Funktion)
const uint8_t wrPin = 2;    //Digitaler GPIO
const uint8_t cePin = 3;    //Digitaler GPIO (auch mit PWM  Funktion)

Auslesung der Uhrzeit funktioniert super.
Ein Setzen der Uhrzeit mit z.B. "RTC.set(15,3,31,3,20,3,0);" ist aber 
nicht möglich.
Muss ich diesen erst stoppen? Dazu gibt es leider in der Libary keine 
Funktion. Diese gibt als Beispiel folgendes:

if(!RTC.isRunning()){
  // Set (or adjust) time. (yy,MM,dd,ww,hh,mm,ss)
  // 2015.Mar.31 Tue 20:03:00
  //RTC.set(15,3,31,3,20,3,0);
}

Über jede Hilfe dankbar!

Viele Grüße
Petmic
OP #6843433
Lesenswert?

#include <rtc4543lib.h>

const uint8_t dataPin = 12;
const uint8_t clkPin = 13;
const uint8_t wrPin = 2;
const uint8_t cePin = 3;

RTC4543 RTC(dataPin,clkPin, wrPin, cePin);

void setup() {
    Serial.begin(115200);

    // Set current time to RTC4543.
    // RTC.set(YY,MM,DD,W,hh,mm,ss);
    RTC.set(16,5,31,3,15,9,0);
}

void loop(){
    uint8_t val;

    RTC.now(); //Get (Update) current date and time from RTC4543.

    val = RTC.getYear(RTC4543::IN_BIN); //Get Year in BIN.
    Serial.print("20");
    Serial.print(val);
    Serial.print("/");

    val = RTC.getMonth(RTC4543::IN_BIN);  //Get month in BIN.
    Serial.print(val);
    Serial.print("/");

    val = RTC.getDate(RTC4543::IN_BIN);  //Get date in BIN.
    Serial.print(val);
    Serial.print(" ");

    val = RTC.getDay(RTC4543::IN_BIN);  //Get day in BIN.
    Serial.print(val);
    Serial.print(" ");

    val = RTC.getHours(RTC4543::IN_BCD);  //Get hours in BCD.
    Serial.print(val,HEX);
    Serial.print(":");

    val = RTC.getMinutes(RTC4543::IN_BIN);  //Get minutes in BIN.
    Serial.print(val);
    Serial.print(":");

    val = RTC.getSeconds(RTC4543::IN_BIN);  //Get seconds in BIN.
    Serial.println(val);

    delay(10000);
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren