RTC beállítása

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Válasz küldése
kukuri
Bitmanipulátor
Hozzászólások: 132
Csatlakozott: 2014. január 20. hétfő, 12:50

RTC beállítása

Hozzászólás Szerző: kukuri »

Üdvözlet.

Van egy DS1307 chipes óramodulom. Az időkinyeréssel nincsen gond.
Szeretném átállítani az időt benne mert nem pontos.
Talán ezzel a sorral meg is tehetem:

Kód: Egész kijelölése

    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
Viszont jó lenne tudni a pontos paramétereket.
Ha nem a rendszer időt akarom beállítani akkot mit irhatok a ___DATE___ és __TIME__ helyére?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: RTC beállítása

Hozzászólás Szerző: Robert »

Van egy rtc nevű lib-ed?
Abban van meghatározva ez az érték...

A formátumra meg irasd ki:

Kód: Egész kijelölése

Serial.println(F(__DATE__));
Serial.println(F(__TIME__));
kukuri
Bitmanipulátor
Hozzászólások: 132
Csatlakozott: 2014. január 20. hétfő, 12:50

Re: RTC beállítása

Hozzászólás Szerző: kukuri »

Arra lenne szükségem hogy ha konkrétan egy adott időpontot akarok megadni azt hogy tehetem meg.
Online kapcsolatban van a vezérlő a szerverrel. Így onnan le tudom kérni az időt. Viszont ha megszűnik a kapcsolat akkor is tudnom kell a pontos időt.
Arra gondoltam hogy időnként szinkronizálom az RTC -t a szerver idejével.

Észrevettem hogy az RTC 15 percet késik 24 óra alatt. Addig nézegettem ameddig észrevettem hogy az elem fel van púposodva. Már csak az a kérdés hogy az elem volt hibás, vagy érintkezési hiba miatt túlfeszt kapott.
kukuri
Bitmanipulátor
Hozzászólások: 132
Csatlakozott: 2014. január 20. hétfő, 12:50

Re: RTC beállítása

Hozzászólás Szerző: kukuri »

Ha a 3,6V elem helyére 3V osat teszek lehet jó működést várnom?
kukuri
Bitmanipulátor
Hozzászólások: 132
Csatlakozott: 2014. január 20. hétfő, 12:50

Re: RTC beállítása

Hozzászólás Szerző: kukuri »

Robert írta:Van egy rtc nevű lib-ed?
Abban van meghatározva ez az érték...

A formátumra meg irasd ki:

Kód: Egész kijelölése

Serial.println(F(__DATE__));
Serial.println(F(__TIME__));
Megvan.
A következő formátummal lehet állítani:

Kód: Egész kijelölése

       rtc.adjust(DateTime(F("May 20 2015"), F("12:00:00")));
Most látszólag a kissebb elemmel is ketyeg. Egy régebbi PC ből vettem ki mert nem volt más.
kukuri
Bitmanipulátor
Hozzászólások: 132
Csatlakozott: 2014. január 20. hétfő, 12:50

Re: RTC beállítása

Hozzászólás Szerző: kukuri »

Már azt hittem jó lesz.
Megvan a szervertől az idő. Sikerült a stringből longot készíteni, de végül még mindig problémázik a tupus miatt.
A következőt akarom vele elfogadtatni:

Kód: Egész kijelölése

String beallit_date="";
String beallit_time="";
...
  if(beallit_date!="")
  {
    rtc.adjust(DateTime(F(beallit_date), F(beallit_time)));
  }
És a következő hiba jön vissza:
Arduino: 1.6.3 (Windows 7), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,

from bero4_8.ino:5:

bero4_8.ino: In function 'void setup()':

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:38:74: error: initializer fails to determine size of '__c'

#define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal)))

^

bero4_8.ino:239:25: note: in expansion of macro 'F'

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:38:74: error: array must be initialized with a brace-enclosed initializer

#define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal)))

^

bero4_8.ino:239:25: note: in expansion of macro 'F'

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:38:74: error: initializer fails to determine size of '__c'

#define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal)))

^

bero4_8.ino:239:42: note: in expansion of macro 'F'

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:38:74: error: array must be initialized with a brace-enclosed initializer

#define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal)))

^

bero4_8.ino:239:42: note: in expansion of macro 'F'

Hiba a fordítás során.

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: RTC beállítása

Hozzászólás Szerző: Robert »

Próbáld így:

Kód: Egész kijelölése

String beallit_date="";
String beallit_time="";
...
  if(beallit_date!="")
  {
    rtc.adjust(DateTime(beallit_date, beallit_time));
  }
F -> konstans, nem SRAMba téve.
Válasz küldése