19-08-2020, 22:10
Witam
Czy ktoś wie jak rozwiązać, poradzić coś na dziwne zachowanie Arduino Mega.
Już tłumaczę o co chodzi.
Docelowo układ będzie pobierań czas z GPSa, ustawiał DS1307 , później co jakiś czas odczytywał ten czas i wykonywał różne operacje, w tym przesunięcie czasu systemowego do UTC.
Chciałem przetestować układ DS1307 z następującym kodem
Przy odczycie na monitorze portu szeregowego otrzymuję dziwne dane:
Dane z DSa są poprawne.
Co jeszcze ciekawsze, jeżeli usunę komentarz przy:
to odczytane daty na monitorze pokrywają się.
Użyte Arduino to klon Mega2560.
Jest w tym kodzie również inne ciekawe zjawisko.
Po usunięciu komentarzy przy:
i pozostawieniu w sekcji setup:
na monitorze są również błędne odczyty, ale inne:
Czy ktoś wie czym takie zachowanie jest spowodowane i jak się go pozbyć ?
Czy ktoś wie jak rozwiązać, poradzić coś na dziwne zachowanie Arduino Mega.
Już tłumaczę o co chodzi.
Docelowo układ będzie pobierań czas z GPSa, ustawiał DS1307 , później co jakiś czas odczytywał ten czas i wykonywał różne operacje, w tym przesunięcie czasu systemowego do UTC.
Chciałem przetestować układ DS1307 z następującym kodem
Kod:
#include <Wire.h>
#include <DS1307.h>
#include <TimeLib.h>
DS1307 clock;
RTCDateTime dt;
void setup()
{
Serial.begin(9600);
// Inicjalizacja DS1307
Serial.println("Inicjalizacja DS1307");;
clock.begin();
// Jeśli nie ustawiono daty, ustawiamy
if (!clock.isReady())
{
// Data i czas z momentu kompilacji
clock.setDateTime(__DATE__, __TIME__);
}
}
void loop()
{
dt = clock.getDateTime();
//String d3;
setTime(dt.hour, dt.minute, dt.second, dt.day, dt.month, dt.year);
// add the offset to get local time
//adjustTime(-7200);
Serial.print("system data: ");Serial.print(dt.year); Serial.print("-");
Serial.print(month()); Serial.print("-");
Serial.print(day()); Serial.print(" ");
Serial.print(hour()); Serial.print(":");
Serial.print(minute()); Serial.print(":");
Serial.print(second()); Serial.println("");
Serial.print("Raw data: ");
Serial.print(dt.year); Serial.print("-");
Serial.print(dt.month); Serial.print("-");
Serial.print(dt.day); Serial.print(" ");
Serial.print(dt.hour); Serial.print(":");
Serial.print(dt.minute); Serial.print(":");
Serial.print(dt.second); Serial.println("");
delay(1000);
}
Przy odczycie na monitorze portu szeregowego otrzymuję dziwne dane:
Kod:
system data: 2020-4-64 21:55:31
Raw data: 2020-8-19 21:55:31
Co jeszcze ciekawsze, jeżeli usunę komentarz przy:
Kod:
//String d3;
Użyte Arduino to klon Mega2560.
Jest w tym kodzie również inne ciekawe zjawisko.
Po usunięciu komentarzy przy:
Kod:
//String d3;
i pozostawieniu w sekcji setup:
Kod:
void setup()
{
Serial.begin(9600);
clock.begin();
// Jeśli nie ustawiono daty, ustawiamy
if (!clock.isReady())
{
// Data i czas z momentu kompilacji
clock.setDateTime(__DATE__, __TIME__);
}
}
Kod:
system data: 2020-13-19 22:5:3
Raw data: 2020-8-19 22:5:3