Witam
Zacząłem zabawę z zegarem DS3231 i na dzień dobry natknąłem się na problem z kompilacją (Arduino 1.8.4).
Wgrałem automatycznie bibliotekę DS3231.h niestety program wyrzuca błędy kompilacji:
WARNING: Category 'Real-time clock' in library DS3231 is not valid. Setting to 'Uncategorized'
Jedynie co znalazłem w necie to żeby wgrać bibliotekę o innej numeracji co też uczyniłem.
Niestety problem dalej występuje
Czy ktoś się orientuje o co chodzi???
Kod:
#include <Wire.h>
#include <DS3231.h>
DS3231 clock;
RTCDateTime dt;
void setup()
{
Serial.begin(9600);
// Inicjalizacja DS3231
Serial.println("Initialize DS3231");;
clock.begin();
// Ustawiamy date i czas z kompilacji szkicu
clock.setDateTime(__DATE__, __TIME__);
// Lub recznie (YYYY, MM, DD, HH, II, SS
// clock.setDateTime(2014, 4, 13, 19, 21, 00);
}
void loop()
{
// Odczytujemy czas i formatujemy za pomoca funkcji dateFormat
dt = clock.getDateTime();
Serial.print("Long number format: ");
Serial.println(clock.dateFormat("d-m-Y H:i:s", dt));
Serial.print("Long format with month name: ");
Serial.println(clock.dateFormat("d F Y H:i:s", dt));
Serial.print("Short format witch 12h mode: ");
Serial.println(clock.dateFormat("jS M y, h:ia", dt));
Serial.print("Today is: ");
Serial.print(clock.dateFormat("l, z", dt));
Serial.println(" days of the year.");
Serial.print("Actual month has: ");
Serial.print(clock.dateFormat("t", dt));
Serial.println(" days.");
Serial.print("Unixtime: ");
Serial.println(clock.dateFormat("U", dt));
Serial.println();
delay(1000);
}
Ciężko cokolwiek wywróżyć bo nie podajesz źródła biblioteki.
Zacznij od przykładów dostarczonych z biblioteką.
Na wersji 1.8.4 przykład kompiluje się prawidłowo. Pokaż pełny wynik kompilacji.
Co ciekawe teraz cokolwiek kompiluje zawsze mam pierwszą line:
UWAGA: Kategoria 'Real-time clock' w bibliotece DS3231 jest nieprawidłowa. Ustawiono na 'Uncategorized'
Mam nadzieję że o to ci chodzi czy mam włączyć jeszcze opcje:
"Pokaż szczegółowe informacje podczas kompilacji"
Kod:
Arduino:1.8.4 (Windows XP), Płytka:"Arduino Pro or Pro Mini, ATmega328P (5V, 16 MHz)"
UWAGA: Kategoria 'Real-time clock' w bibliotece DS3231 jest nieprawidłowa. Ustawiono na 'Uncategorized'
sketch_sep26a:5: error: 'RTCDateTime' does not name a type
RTCDateTime dt;
^
E:\Dane\elektronika\programy\Anduino\dane\sketch_sep26a\sketch_sep26a.ino: In function 'void setup()':
sketch_sep26a:13: error: 'class DS3231' has no member named 'begin'
clock.begin();
^
sketch_sep26a:16: error: 'class DS3231' has no member named 'setDateTime'
clock.setDateTime(__DATE__, __TIME__);
^
E:\Dane\elektronika\programy\Anduino\dane\sketch_sep26a\sketch_sep26a.ino: In function 'void loop()':
sketch_sep26a:25: error: 'dt' was not declared in this scope
dt = clock.getDateTime();
^
sketch_sep26a:25: error: 'class DS3231' has no member named 'getDateTime'
dt = clock.getDateTime();
^
sketch_sep26a:28: error: 'class DS3231' has no member named 'dateFormat'
Serial.println(clock.dateFormat("d-m-Y H:i:s", dt));
^
sketch_sep26a:31: error: 'class DS3231' has no member named 'dateFormat'
Serial.println(clock.dateFormat("d F Y H:i:s", dt));
^
sketch_sep26a:34: error: 'class DS3231' has no member named 'dateFormat'
Serial.println(clock.dateFormat("jS M y, h:ia", dt));
^
sketch_sep26a:37: error: 'class DS3231' has no member named 'dateFormat'
Serial.print(clock.dateFormat("l, z", dt));
^
sketch_sep26a:41: error: 'class DS3231' has no member named 'dateFormat'
Serial.print(clock.dateFormat("t", dt));
^
sketch_sep26a:45: error: 'class DS3231' has no member named 'dateFormat'
Serial.println(clock.dateFormat("U", dt));
^
exit status 1
'RTCDateTime' does not name a type
Ten raport powinien zawierać więcej informacji jeśli w
File -> Preferencje zostanie włączona opcja "Pokaż
szczegółowe informacje podczas kompilacji"
Daj szczegółowe informacje. Z logu wynika że najprawdopodobniej do kompilacji została wybrana inna biblioteka.
Arduino:1.8.4 (Windows XP), Płytka:"Arduino Pro or Pro Mini, ATmega328P (5V, 16 MHz)"
C:\Program Files\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files\Arduino\hardware -hardware C:\Documents and Settings\XAX\Ustawienia lokalne\Dane aplikacji\Arduino15\packages -tools C:\Program Files\Arduino\tools-builder -tools C:\Program Files\Arduino\hardware\tools\avr -tools C:\Documents and Settings\XAX\Ustawienia lokalne\Dane aplikacji\Arduino15\packages -built-in-libraries C:\Program Files\Arduino\libraries -libraries E:\Dane\elektronika\programy\Anduino\dane\libraries -fqbn=arduino:avr:pro:cpu=16MHzatmega328 -ide-version=10804 -build-path C:\DOCUME~1\XAX\USTAWI~1\Temp\arduino_build_359277 -warnings=none -build-cache C:\DOCUME~1\XAX\USTAWI~1\Temp\arduino_cache_646300 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files\Arduino\hardware\tools\avr -verbose E:\Dane\elektronika\programy\Anduino\dane\libraries\DS3231\examples\echo_time\echo_time.pde
C:\Program Files\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files\Arduino\hardware -hardware C:\Documents and Settings\XAX\Ustawienia lokalne\Dane aplikacji\Arduino15\packages -tools C:\Program Files\Arduino\tools-builder -tools C:\Program Files\Arduino\hardware\tools\avr -tools C:\Documents and Settings\XAX\Ustawienia lokalne\Dane aplikacji\Arduino15\packages -built-in-libraries C:\Program Files\Arduino\libraries -libraries E:\Dane\elektronika\programy\Anduino\dane\libraries -fqbn=arduino:avr:pro:cpu=16MHzatmega328 -ide-version=10804 -build-path C:\DOCUME~1\XAX\USTAWI~1\Temp\arduino_build_359277 -warnings=none -build-cache C:\DOCUME~1\XAX\USTAWI~1\Temp\arduino_cache_646300 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files\Arduino\hardware\tools\avr -verbose E:\Dane\elektronika\programy\Anduino\dane\libraries\DS3231\examples\echo_time\echo_time.pde
Using board 'pro' from platform in folder: C:\Program Files\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Program Files\Arduino\hardware\arduino\avr
UWAGA: Kategoria 'Real-time clock' w bibliotece DS3231 jest nieprawidłowa. Ustawiono na 'Uncategorized'
Detecting libraries used...
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\DOCUME~1\XAX\USTAWI~1\Temp\arduino_build_359277\sketch\echo_time.pde.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IE:\Dane\elektronika\programy\Anduino\dane\libraries\DS3231" "C:\DOCUME~1\XAX\USTAWI~1\Temp\arduino_build_359277\sketch\echo_time.pde.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IE:\Dane\elektronika\programy\Anduino\dane\libraries\DS3231" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\DOCUME~1\XAX\USTAWI~1\Temp\arduino_build_359277\sketch\echo_time.pde.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IE:\Dane\elektronika\programy\Anduino\dane\libraries\DS3231" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "E:\Dane\elektronika\programy\Anduino\dane\libraries\DS3231\DS3231.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IE:\Dane\elektronika\programy\Anduino\dane\libraries\DS3231" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IE:\Dane\elektronika\programy\Anduino\dane\libraries\DS3231" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src\utility\twi.c" -o "nul"
Generating function prototypes...
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IE:\Dane\elektronika\programy\Anduino\dane\libraries\DS3231" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\DOCUME~1\XAX\USTAWI~1\Temp\arduino_build_359277\sketch\echo_time.pde.cpp" -o "C:\DOCUME~1\XAX\USTAWI~1\Temp\arduino_build_359277\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files\Arduino\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\DOCUME~1\XAX\USTAWI~1\Temp\arduino_build_359277\preproc\ctags_target_for_gcc_minus_e.cpp"
Kompilowanie szkicu...
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IE:\Dane\elektronika\programy\Anduino\dane\libraries\DS3231" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\DOCUME~1\XAX\USTAWI~1\Temp\arduino_build_359277\sketch\echo_time.pde.cpp" -o "C:\DOCUME~1\XAX\USTAWI~1\Temp\arduino_build_359277\sketch\echo_time.pde.cpp.o"
E:\Dane\elektronika\programy\Anduino\dane\libraries\DS3231\examples\echo_time\echo_time.pde: In function 'void setup()':
echo_time:33: error: 'Century' was not declared in this scope
Serial.print(Clock.getMonth(Century), DEC);
^
echo_time:37: error: 'h12' was not declared in this scope
Serial.print(Clock.getHour(h12, PM), DEC); //24-hr
^
echo_time:37: error: 'PM' was not declared in this scope
Serial.print(Clock.getHour(h12, PM), DEC); //24-hr
^
echo_time:44: error: a function-definition is not allowed here before '{' token
void loop() {}
^
echo_time:44: error: expected '}' at end of input
void loop() {}
^
Użycie biblioteki DS3231 w wersji 1.0 z folderu: E:\Dane\elektronika\programy\Anduino\dane\libraries\DS3231
Użycie biblioteki Wire w wersji 1.0 z folderu: C:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire
exit status 1
'Century' was not declared in this scope
Kompilujesz plik z rozszerzeniem pde a takiego nie ma w przykładach dostarczonych z biblioteką. Myślę że używasz jakiejś starszej wersji. Sciągnij tą bibliotekę:
https://github.com/jarzebski/Arduino-DS3...master.zip wypakuj do katalogu "libraries" a poprzednią przenieś w inne miejsce.Skompiluj przykłady i daj znać co i jak.
Dzięki działa
Program skompilował się bezbłędnie ale jeszcze nie miałem czasu podłączyć zegara do płytki arduino.
Ciekawe że samo arduino proponuje w automatycznym instalowaniu bibliotek, bibliotekę już nieaktualną