mám modul DS3231 (nikoliv samotný čip) a při posunu času se mi při uploadu sketche čas posune o dvě hodiny místo o jednu. Při resetu a odpojení a zapojení napájení to funguje správně. Hodina se mi je přičtená jednou v setup() na řádku 10 - i když ji přičítám až na řádku 15 - a podruhé ve funkci posunHod(). Poraďte, prosím, kde udělali soudruzi z NDR chybu?
Kód: Vybrat vše
#include <DS3231.h> // hodiny
DS3231 rtc; // inicializace RTC z knihovny
RTCDateTime datumCas; // vytvoření proměnné pro práci s časem
void setup() {
Serial.begin(9600);
while (!Serial); // wait for serial port to connect.
Serial.println();
rtc.begin();
datumCas = rtc.getDateTime();
Serial.println(datumCas.hour);
posunHod(1);
}
void posunHod(int oKolik) {
unsigned int x;
x = oKolik + datumCas.hour;
rtc.setDateTime(datumCas.year, datumCas.month, datumCas.day, x, datumCas.minute, datumCas.second);
datumCas = rtc.getDateTime();
Serial.println(datumCas.hour);
}
void loop() {
// put your main code here, to run repeatedly:
}
Zkoušel jsem to i bez knihovny DS3231.h (master z arduino.cc) přímo přes wire, ale dělá to stejně.