Jak poradzić sobie z tym błędem? - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Instalacja i rozwiązywanie problemów (https://forum.arduinopolska.pl/dzial-instalacja-i-rozwi%C4%85zywanie-problem%C3%B3w) +--- Wątek: Jak poradzić sobie z tym błędem? (/watek-jak-poradzi%C4%87-sobie-z-tym-b%C5%82%C4%99dem) |
Jak poradzić sobie z tym błędem? - Mick_SQ6IYV - 22-04-2022 Witam! Może mi ktoś podpowiedzieć jak sobie poradzić z tym błędem? Wszystkie moje pomysły spełzły na niczym "Arduino:1.8.19 (Windows 10), Płytka:"Arduino Duemilanove or Diecimila, ATmega168" In file included from C:\Users\PWr\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\cores\arduino/Arduino.h:28:0, from C:\Program Files (x86)\Arduino\libraries\MorseEnDecoder\MorseEnDecoder.h:7, from C:\Program Files (x86)\Arduino\libraries\MorseEnDecoder\MorseEnDecoder.cpp:58: C:\Program Files (x86)\Arduino\libraries\MorseEnDecoder\MorseEnDecoder.cpp:69:19: error: variable 'morseTable' must be const in order to be put into read-only section by means of '__attribute__((progmem))' char morseTable[] PROGMEM = "*5*H*4*S***V*3*I***F***U?*_**2*E*&*L\"**R*+.****A***P@**W***J'1* *6-B*=*D*/" ^ exit status 1 Błąd kompilacji dla płytki Arduino Duemilanove or Diecimila." Pozdrawiam, RE: Jak poradzić sobie z tym błędem? - Robson Kerman - 22-04-2022 No jest napisane, że: "variable 'morseTable' must be const", więc w czym problem? RE: Jak poradzić sobie z tym błędem? - Irvin - 23-04-2022 Można też użyć jakiegoś programu Arduino w wersji ~1.5, potem trzeba było dopisywać const przy progmem. RE: Jak poradzić sobie z tym błędem? - Mick_SQ6IYV - 25-04-2022 Po próbie dopisania "na żywca" const we wskazanej linii ilość komunikatów zwiększyła się do załączonego niżej rozmiaru: "C:\Program Files (x86)\Arduino\libraries\MorseEnDecoder\MorseEnDecoder.cpp:69:19: error: expected initializer before 'const' char morseTable[] const PROGMEM = "*5*H*4*S***V*3*I***F***U?*_**2*E*&*L\"**R*+.****A***P@**W***J'1* *6-B*=*D*/" ^~~~~ In file included from C:\Users\PWr\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\cores\arduino/Arduino.h:28:0, from C:\Program Files (x86)\Arduino\libraries\MorseEnDecoder\MorseEnDecoder.h:7, from C:\Program Files (x86)\Arduino\libraries\MorseEnDecoder\MorseEnDecoder.cpp:58: C:\Program Files (x86)\Arduino\libraries\MorseEnDecoder\MorseEnDecoder.cpp: In member function 'void morseDecoder::decode()': C:\Program Files (x86)\Arduino\libraries\MorseEnDecoder\MorseEnDecoder.cpp:280:45: error: 'morseTable' was not declared in this scope decodedMorseChar = pgm_read_byte_near(morseTable + morseTablePointer); ^ C:\Program Files (x86)\Arduino\libraries\MorseEnDecoder\MorseEnDecoder.cpp:280:45: note: suggested alternative: 'morseSpace' C:\Program Files (x86)\Arduino\libraries\MorseEnDecoder\MorseEnDecoder.cpp: In member function 'void morseEncoder::encode()': C:\Program Files (x86)\Arduino\libraries\MorseEnDecoder\MorseEnDecoder.cpp:319:63: error: 'morseTable' was not declared in this scope for (i=0; i<morseTableLength; i++) if (pgm_read_byte_near(morseTable + i) == encodeMorseChar) break; ^ C:\Program Files (x86)\Arduino\libraries\MorseEnDecoder\MorseEnDecoder.cpp:319:63: note: suggested alternative: 'Printable' exit status 1 Błąd kompilacji dla płytki Arduino Duemilanove or Diecimila." RE: Jak poradzić sobie z tym błędem? - Robson Kerman - 25-04-2022 Po pierwsze zamień to: char morseTable[] const PROGMEM = "*5*H*4*S***V*3*I***F***U?*_**2*E*&*L\"**R*+.****A***P@**W***J'1* *6-B*=*D*/" na to: const char morseTable[] PROGMEM = "*5*H*4*S***V*3*I***F***U?*_**2*E*&*L\"**R*+.****A***P@**W***J'1* *6-B*=*D*/" Po drugie: Powiedz mi jaka to płytka i w jakim środowisku programujesz? RE: Jak poradzić sobie z tym błędem? - kaczakat - 25-04-2022 Jest postęp, bo błędy inne. Czasami dla jednego projektu prościej jednak ściągnąć starszą wersję Arduino, są ciągle do pobrania i w wersji portable. Masz dziwne miejsce tej biblioteki, mnie pobiera (czy sam wgrywam) do katalogu Arduino w "Moje dokumenty". Biblioteka też może być w innej wersji stąd błędy. Jak nie chcesz mieć problemów to najlepiej wszystko mieć zgodne: wersję Arduino, płytkę, biblioteką i program (z tego samego okresu). |