• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Projek zegara z pasków LED i pierścienia NeoPixel - Problem z kompilacją programu
#1
Sad 
Cześć. Potrzebuję pomocy bo na prawdę czarno już to widzę a na prawdę szkoda by było żeby te części elektroniczne tylko tak leżakowały do swego czasu kiedy już przyjdzie pora wykorzystać je kiedyś do czego innego a tym bardziej, że bardzo mi zależy na tym projekcie. Od razu uprzedzam, że jestem kompletnie początkujący także bardzo proszę o wyrozumiałość. Chcę zbudować bardzo fajny zegar oparty o 2 płytki arduino pro mini, taśmę adresowalną LED i ring też adresowalny. Projekt pochodzi ze strony https://www.forgani.com/electronics-proj...ing-clock/ Mam problem z zaprogramowaniem tych płytek choćby tej pierwszej (z drugą już nie próbowałem bo nie ma sensu skoro będzie ta sama sytuacja). Do programowania używam środowiska Arduino IDE w systemie operacyjnym Windows 10. Środowisko jest oczywiście w najnowszej werssji. Mam do dyspozycji konwerter CP2102. Wyczytałem też, że można użyć Arduino UNO jako programatora do Arduino pro mini więc ewentualnie mam też Arduino UNO. Niby wszystko przygotowałem tak jak trzeba aby już tylko załadować program, sterowniki też są poinstalowane i najnowsze ale niestety pojawia mi się komunikat: "Compilation error: exit status 1" i przez to nie chce mi załadować szkicu na płytkę. Kombinowałem najpierw z tym konwerterem CP2102 z wciskaniem resetu w odpowiednim momencie i nic. Spróbowałem z Arduino UNO i też nic nie pomaga nawet po zainstalowaniu wszystkich niezbędnych do tego projektu bibliotek i też w najnowszych wersjach. Nie widzę już nic więcej co mogło by mi tu pomóc aby wreszcie można było załadować szkic bez żadnego problemu i przez to stoję z całym projektem w miejscu już bezradny. W załączniku wrzucał cały kod projektu może tam gdzieś jest jakiś błąd a jeśli tak to gdzie i co tu należy zrobić. Cały kod tego projektu jest podzielony na 2 części (po jednej dla każdej z płytek). Załączam też poniżej komunikaty z konsoli jakie się generują podczas kompilacji:

Część 1

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp: In static member function 'static void DCF77::finalizeBuffer()':

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:160:21: error: 'now' was not declared in this scope

  filledTimestamp = now();

                    ^~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:160:21: note: suggested alternative: 'pow'

  filledTimestamp = now();

                    ^~~

                    pow

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp: In static member function 'static bool DCF77::receivedTimeUpdate()':

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:189:46: error: 'now' was not declared in this scope

  time_t processedTime = latestupdatedTime + (now() - processingTimestamp);

                                              ^~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:189:46: note: suggested alternative: 'pow'

  time_t processedTime = latestupdatedTime + (now() - processingTimestamp);

                                              ^~~

                                              pow

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:197:20: error: 'SECS_PER_MIN' was not declared in this scope

  if(difference < 2*SECS_PER_MIN) {

                    ^~~~~~~~~~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:197:20: note: suggested alternative: 'WCHAR_MIN'

  if(difference < 2*SECS_PER_MIN) {

                    ^~~~~~~~~~~~

                    WCHAR_MIN

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:209:25: error: 'SECS_PER_MIN' was not declared in this scope

  if(shiftDifference < 2*SECS_PER_MIN) {

                        ^~~~~~~~~~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:209:25: note: suggested alternative: 'WCHAR_MIN'

  if(shiftDifference < 2*SECS_PER_MIN) {

                        ^~~~~~~~~~~~

                        WCHAR_MIN

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp: In static member function 'static bool DCF77::processBuffer()':

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:271:2: error: 'tmElements_t' was not declared in this scope

  tmElements_t time;

  ^~~~~~~~~~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:284:12: error: request for member 'Second' in 'time', which is of non-class type 'time_t(time_t*) {aka long unsigned int(long unsigned int*)}'

      time.Second = 0;

            ^~~~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:285:9: error: request for member 'Minute' in 'time', which is of non-class type 'time_t(time_t*) {aka long unsigned int(long unsigned int*)}'

    time.Minute = rx_buffer->Min-((rx_buffer->Min/16)*6);

        ^~~~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:286:12: error: request for member 'Hour' in 'time', which is of non-class type 'time_t(time_t*) {aka long unsigned int(long unsigned int*)}'

      time.Hour  = rx_buffer->Hour-((rx_buffer->Hour/16)*6);

            ^~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:287:12: error: request for member 'Day' in 'time', which is of non-class type 'time_t(time_t*) {aka long unsigned int(long unsigned int*)}'

      time.Day    = rx_buffer->Day-((rx_buffer->Day/16)*6);

            ^~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:288:12: error: request for member 'Month' in 'time', which is of non-class type 'time_t(time_t*) {aka long unsigned int(long unsigned int*)}'

      time.Month  = rx_buffer->Month-((rx_buffer->Month/16)*6);

            ^~~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:289:12: error: request for member 'Year' in 'time', which is of non-class type 'time_t(time_t*) {aka long unsigned int(long unsigned int*)}'

      time.Year  = 2000 + rx_buffer->Year-((rx_buffer->Year/16)*6) -1970;

            ^~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:290:24: error: 'makeTime' was not declared in this scope

    latestupdatedTime = makeTime(time);

                        ^~~~~~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:290:24: note: suggested alternative: 'mktime'

    latestupdatedTime = makeTime(time);

                        ^~~~~~~~

                        mktime

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp: In static member function 'static time_t DCF77::getTime()':

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:310:44: error: 'now' was not declared in this scope

  time_t currentTime =latestupdatedTime + (now() - processingTimestamp);

                                            ^~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:310:44: note: suggested alternative: 'pow'

  time_t currentTime =latestupdatedTime + (now() - processingTimestamp);

                                            ^~~

                                            pow

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp: In static member function 'static time_t DCF77::getUTCTime()':

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:325:42: error: 'SECS_PER_HOUR' was not declared in this scope

  int UTCTimeDifference = (CEST ? 2 : 1)*SECS_PER_HOUR;

                                          ^~~~~~~~~~~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:326:64: error: 'now' was not declared in this scope

  time_t currentTime =latestupdatedTime - UTCTimeDifference + (now() - processingTimestamp);

                                                                ^~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:326:64: note: suggested alternative: 'pow'

  time_t currentTime =latestupdatedTime - UTCTimeDifference + (now() - processingTimestamp);

                                                                ^~~

                                                                pow



exit status 1


Compilation error: exit status 1

A tutaj komunikat z konsoli przy drugiej części kodu (dla drugiej płytki arduino pro mini, która jest wykorzystana w projekcie):

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp: In static member function 'static void DCF77::finalizeBuffer()':

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:160:21: error: 'now' was not declared in this scope

  filledTimestamp = now();

                    ^~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:160:21: note: suggested alternative: 'pow'

  filledTimestamp = now();

                    ^~~

                    pow

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp: In static member function 'static bool DCF77::receivedTimeUpdate()':

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:189:46: error: 'now' was not declared in this scope

  time_t processedTime = latestupdatedTime + (now() - processingTimestamp);

                                              ^~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:189:46: note: suggested alternative: 'pow'

  time_t processedTime = latestupdatedTime + (now() - processingTimestamp);

                                              ^~~

                                              pow

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:197:20: error: 'SECS_PER_MIN' was not declared in this scope

  if(difference < 2*SECS_PER_MIN) {

                    ^~~~~~~~~~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:197:20: note: suggested alternative: 'WCHAR_MIN'

  if(difference < 2*SECS_PER_MIN) {

                    ^~~~~~~~~~~~

                    WCHAR_MIN

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:209:25: error: 'SECS_PER_MIN' was not declared in this scope

  if(shiftDifference < 2*SECS_PER_MIN) {

                        ^~~~~~~~~~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:209:25: note: suggested alternative: 'WCHAR_MIN'

  if(shiftDifference < 2*SECS_PER_MIN) {

                        ^~~~~~~~~~~~

                        WCHAR_MIN

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp: In static member function 'static bool DCF77::processBuffer()':

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:271:2: error: 'tmElements_t' was not declared in this scope

  tmElements_t time;

  ^~~~~~~~~~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:284:12: error: request for member 'Second' in 'time', which is of non-class type 'time_t(time_t*) {aka long unsigned int(long unsigned int*)}'

      time.Second = 0;

            ^~~~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:285:9: error: request for member 'Minute' in 'time', which is of non-class type 'time_t(time_t*) {aka long unsigned int(long unsigned int*)}'

    time.Minute = rx_buffer->Min-((rx_buffer->Min/16)*6);

        ^~~~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:286:12: error: request for member 'Hour' in 'time', which is of non-class type 'time_t(time_t*) {aka long unsigned int(long unsigned int*)}'

      time.Hour  = rx_buffer->Hour-((rx_buffer->Hour/16)*6);

            ^~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:287:12: error: request for member 'Day' in 'time', which is of non-class type 'time_t(time_t*) {aka long unsigned int(long unsigned int*)}'

      time.Day    = rx_buffer->Day-((rx_buffer->Day/16)*6);

            ^~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:288:12: error: request for member 'Month' in 'time', which is of non-class type 'time_t(time_t*) {aka long unsigned int(long unsigned int*)}'

      time.Month  = rx_buffer->Month-((rx_buffer->Month/16)*6);

            ^~~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:289:12: error: request for member 'Year' in 'time', which is of non-class type 'time_t(time_t*) {aka long unsigned int(long unsigned int*)}'

      time.Year  = 2000 + rx_buffer->Year-((rx_buffer->Year/16)*6) -1970;

            ^~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:290:24: error: 'makeTime' was not declared in this scope

    latestupdatedTime = makeTime(time);

                        ^~~~~~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:290:24: note: suggested alternative: 'mktime'

    latestupdatedTime = makeTime(time);

                        ^~~~~~~~

                        mktime

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp: In static member function 'static time_t DCF77::getTime()':

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:310:44: error: 'now' was not declared in this scope

  time_t currentTime =latestupdatedTime + (now() - processingTimestamp);

                                            ^~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:310:44: note: suggested alternative: 'pow'

  time_t currentTime =latestupdatedTime + (now() - processingTimestamp);

                                            ^~~

                                            pow

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp: In static member function 'static time_t DCF77::getUTCTime()':

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:325:42: error: 'SECS_PER_HOUR' was not declared in this scope

  int UTCTimeDifference = (CEST ? 2 : 1)*SECS_PER_HOUR;

                                          ^~~~~~~~~~~~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:326:64: error: 'now' was not declared in this scope

  time_t currentTime =latestupdatedTime - UTCTimeDifference + (now() - processingTimestamp);

                                                                ^~~

C:\Users\pawel\OneDrive\Dokumenty\Arduino\libraries\DCF77\DCF77.cpp:326:64: note: suggested alternative: 'pow'

  time_t currentTime =latestupdatedTime - UTCTimeDifference + (now() - processingTimestamp);

                                                                ^~~

                                                                pow



exit status 1


Compilation error: exit status 1

A tutaj załączam linki do filmików, które pokazują jak ten zegar ma działać

https://www.youtube.com/watch?v=ZoRDr95QzdQ&t=16s

drugi filmik

https://www.youtube.com/watch?v=4fzjkswrgDs

Nawet ChatGPT dotąd nie dał rady aby rozwiązać wreszcie problem. Także bardzo proszę o pomoc
 
Odpowiedź
  


Wiadomości w tym wątku
Projek zegara z pasków LED i pierścienia NeoPixel - Problem z kompilacją programu - przez pawel4350 - 06-01-2024, 16:38

Skocz do:


Przeglądający: 1 gości