Skocz do zawartości

Kompilacja szkicu ESP32 z GitHub- wyskakują błędy.


Kuba83

Pomocna odpowiedź

Witam!
Chciałem wykonać zegar na oscyloskopie i płytce ESP32, ten tutaj

https://github.com/maurohh/ESP32_OscilloscopeClock

Mam takie płytki

https://allegro.pl/oferta/mikrokontroler-esp-wroom-32-esp32-usb-c-ch340-wifi-bt-esp-32-4mb-do-arduino-12575360436

Używając Arduino IDE próbowałem to skompilować, niestety jest problem.

Problem z dac.h.

ESP32 ma własny DAC, którego tutaj muszę użyć, niestety nie robiłem nic z ESP32, nie znam tego MCU, robiłem już takie kompilacje ale pod ESP8266, tutaj nie wiem, od czego zacząć.

Jeszcze

C:\Users\Kubaa\Desktop\02.03.2024\ESP32_OscilloscopeClock_v1.0\ESP32_OscilloscopeClock_v1.0.ino:64:10: error: #include expects "FILENAME" or <FILENAME>
   64 | #include dac.h
      |          ^~~
C:\Users\Kubaa\Desktop\02.03.2024\ESP32_OscilloscopeClock_v1.0\ESP32_OscilloscopeClock_v1.0.ino:65:10: fatal error: soc/rtc.h: No such file or directory
   65 | #include <soc/rtc.h>
      |          ^~~~~~~~~~~
compilation terminated.
exit status 1

Compilation error: #include expects "FILENAME" or <FILENAME>

soc/rtc.h i dac.h.

Czy da się skompilować to w Arduino IDE, czy może jest IDE, które otworzy plik ino. i da się to w miarę bezproblemowo zrobić?

Bo ten zegar nie jest bublem programistycznym, jakich wiele, widzę, że bardzo wielu ludzi to zrobiło, nawet z całym wzmacniaczem X-Y i zasilaczem wysokiego napięcia dla lampy.

 

Zrzut ekranu 2024-03-07 010035.png

  • Lubię! 1
Link do komentarza
Share on other sites

To stary projekt:

  ESP32 Oscilloscope Clock 
  using internal DACs, with WiFi and ntp sync.
  
  Mauro Pintus , Milano 2018/05/25

Wygląda, że nie używa żadnej obcej biblioteki, tylko to co w ESP32, a po dacie zgaduję, że był to core bardziej 1.0 niż aktualny. Też miałem problemy z własnymi projektami po aktualizacji do nowego core, zarówno w ESP8266 jak i ESP32. By nic nie grzebać w gotowym projekcie trzeba sobie wgrać core i wszystkie biblioteki w takiej konfiguracji, jak były w czasie tworzenia projektu. Tutaj powinien wystarczyć stary core. 

Nie ma znaczenia jaką masz płytkę, do kompilacji trzeba wybrać taką jak była w projekcie, przecież nie musisz mieć jej podłączonej do PC na czas samej kompilacji, w 2018 była ogólnie dostępna właściwie jedna z ESP32 WROOM, teraz to są C2/C3 S2 i wiele innych, różne zegary, radia, ilość core. Oczywiście mogły być różne warianty, że gdzieś tam led wbudowany jest na innym pinie, czy jakieś piny wyłączone bo użyte do wbudowanych fiuczerów na płytce. W ESP8266 jeszcze niektóre warianty miały pomieszane numeryki GPIO z oznaczeniami D0, D1, itd, w ESP32 zrezygnowano na szczęście z takiego podwójnego oznakowania.

  • Lubię! 2
Link do komentarza
Share on other sites

Witam!

To co konkretnie mam wgrać?

Na co dzień siedzę raczej w analogu, jakieś mierniki z XX wieku, wzmacniacze lampowe i inne układy.....raczej wysokie napięcia, prądy i przebiegi sinus/prostokąt niż "zera i jedynki", jednakże układ ten mi się spodobał, otoczenie wokół lampy sam zrobię, może stary oscyloskop, jakiś rosyjski rupieć, kupię tanio i zapakuję ESP32 do środka.

Jak to ma być "stary core"?

Ciekawi mnie to, bo na GitHub-ie jest sporo układów, nawet pliki GERBER do wykonania PCB są w pliki ZIP.

Czekam na pomoc, bo GitHub to "skarbnica" wartościowych projektów, niekoniecznie trzeba się męczyć i pisać własne ulepy.....jak ktoś studia skończył/jest w trakcie i jest w wieku 17-35 lat, to nie problem, gorzej z pasjonatem po czterdziestce, bez wykształcenia technicznego, jakim ja jestem.

Z gotowca zrobiłem aż cztery zegary, które adaptowałem sprzętowo do różnych wyświetlaczy, niestety kompilacja kodu to dla mnie spory problem.

  • Lubię! 1
Link do komentarza
Share on other sites

Dlaczego linia 64 w Twoim kodzie wygląda inaczej niż na githubie?

Dlaczego masz ustawioną inną płytkę niż ta którą masz (powinna być DevKit a nie Wemos)?

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

(edytowany)
Load this sketch on a ESP32 board using the Arduino IDE 1.8.7 
  See Andreas Spiess video linked below if you don't know how to.

- czytać redme.

- wywal to Arduino 2.3.2 ta wersja dla starych projektów jest problematyczna, tak uważam

- wgrałem i skompilowałem ten projekt, dla jakiegoś tam esp32, idzie jak burza.

oscyloskop1.thumb.png.010d1bd22fbd8914ac15d81974fd7a5b.png  oscyloskop2.thumb.png.7119a8585b68e9eea06633955c09cf51.png

Edytowano przez 99teki
  • Lubię! 1
Link do komentarza
Share on other sites

9 godzin temu, Kuba83 napisał:

To co konkretnie mam wgrać?

Wchodzi w narzędzia, manager płytek, wstukujesz ESP32, wybierasz wersję core i ją instalujesz. 

image.thumb.png.ee2f61c4c05022547b3729ee9bd9c891.png

3 godziny temu, 99teki napisał:

- wywal to Arduino 2.3.2

Wersja Arduino ma ograniczone znaczenie, akurat te rzeczy są w core, napisz jaki masz core esp32 zainstalowany, tak by @Kuba83 mógł wrzucić ten sam, ja mam już najnowszy i nie będę sprawdzał, skoro już to zrobiłeś. Z najnowszym core też to zapewne da się skompilować, sam walczyłem niedawno by przerobić program i tak dobrać nowe wersje bibliotek by wszystko się zgrało i skompilowało. 

Link do komentarza
Share on other sites

26 minut temu, 99teki napisał:

- tak jak na zrzucie, chyba najnowszy

ja miałem już 14, ale zaciekawiłeś mnie i skopiowałem ten projekt, nie poszło, choć błędy inne, w linii 310 rzucał się o te funkcje: (rtc_clk_cpu_freq_value(rtc_clk_cpu_freq_get()));

Ale w 2.0.13 też, dopiero w wersji 1.0 wszystko się skompilowało OK:

image.thumb.png.ce226c516f7424be2406cd8d51687f04.png

Znaczy nie testowałem wszystkich core po kolei, z 2.0.13 przeskoczyłem do 1.

Zupełnie inny wynik kompilacji, pojemność flash i zajętość RAM.

Czary.

 

  • Lubię! 1
Link do komentarza
Share on other sites

53 minuty temu, kaczakat napisał:

Zupełnie inny wynik kompilacji, pojemność flash i zajętość RAM.

Czary.

Różne wersje core używają różnych wersji kompilatora gcc to i wyniki kompilacji są różne.

Link do komentarza
Share on other sites

Nie tylko - pamiętaj że board Arduino to nakładka na esp-idf, a tu się przez ten czas bardzo dużo zmieniło. Ogólnie programy pisane pod 1x nie muszą się nawet kompilować pod 2.x.

Mam taki jeden programik (swój własny zresztą) który wymaga 2.0.5 i na innych nie działa (kompiluje się i tyle)...

Link do komentarza
Share on other sites

38 minut temu, ethanak napisał:

który wymaga 2.0.5

No dlatego właśnie radziłem obniżenie core, ale @99teki to skompilował na 2.0.13, ja nie, w tym widzę czary. 

Expr. coś poprawiali z bezpieczeństwem WIFI, może temu to w nowszych wersjach zajmuje więcej, dlatego też jednak przerabiałem swój stary program, tylko on był zrobiony pod 2.5.2 dla ESP8266 i 1.0 dla ESP32, po aktualizacji musiałem zmienić też biblioteki, a potem niektóre użycia funkcji z tych bibliotek, jest sporo zabawy, odkładałem to z rok,  ale w końcu przyczółek zdobyty. 2.0.5 to już raczej po tej większej łatce.

Link do komentarza
Share on other sites

Ze screenu @99teki powyżej wynika, że ma jednocześnie zainstalowany core Arduino oraz firmy Espressif. Nigdy core Arduino nie używałem, może to on tak potrafi.

Link do komentarza
Share on other sites

To nie tak. Ma core do plytek Arduino opartych na ESP, i core dla płytek ESP32 które można programować w Arduino IDE.

A znając tendencje Arduino CLI do mylenia kompilatorów czory wie czym on tam kompiluje 🙂

Link do komentarza
Share on other sites

Core "Arduino" jest fork'iem core "Espressif" i też może obsługiwać inne płytki (nie tylko Arduino), choć ma ich zdefiniowanych trochę mniej. Ale te podstawowe są.

Z braku innych pomysłów porównałem na Githubie wielkość plików boards.txt dla obu core  - dla  "Arduino" ma on 24114  linii, a dla "Espressif" 34795 linii.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.