Für eine Schrittmotorsteuerung brauche ich mehr Clockspeed, als die 16MHz vom Arduino Uno. Deshalb wollte ich auf ein Adafruit Feather ESP32 wechseln. Doch leider motzt der Compiler übelst wegen der MobaTools library (beim Uno compiliere ich fehlerfrei). Hatte jemand schon dieses Problem?
Hier der Log von der Arduino IDE:
C:\Users\leich\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:236:1: warning: ignoring attribute 'section (".iram1.1")' because it conflicts with previous 'section (".iram1.0")' [-Wattributes]
236 | void IRAM_ATTR setPwmDuty(int8_t pwmNbr, uint32_t duty ){
| ^~~~
In file included from C:\Users\leich\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:5:
C:\Users\leich\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\drivers.h:106:16: note: previous declaration here
106 | void IRAM_ATTR setPwmDuty(int8_t pwmNbr, uint32_t duty );
| ^~~~~~~~~~
"C:\\Users\\leich\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\esp-12.2.0_20230208/bin/xtensa-esp32-elf-g++" -MMD -c "@C:\\Users\\leich\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.1-3662303f31/esp32/flags/cpp_flags" -Wall -Werror=all -Wextra -Os -DF_CPU=240000000L -DARDUINO=10819 -DARDUINO_ADAFRUIT_FEATHER_ESP32_V2 -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ADAFRUIT_FEATHER_ESP32_V2\"" "-DARDUINO_VARIANT=\"adafruit_feather_esp32_v2\"" -DARDUINO_PARTITION_default_8MB "-DARDUINO_HOST_OS=\"windows\"" "-DARDUINO_FQBN=\"esp32:esp32:adafruit_feather_esp32_v2:LoopCore=1,EventsCore=1,PSRAM=enabled,PartitionScheme=default_8MB,CPUFreq=240,FlashFreq=80,FlashSize=8M,UploadSpeed=921600,DebugLevel=none,EraseFlash=none,ZigbeeMode=default\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw -DARDUINO_USB_CDC_ON_BOOT=0 "@C:\\Users\\leich\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.1-3662303f31/esp32/flags/defines" "-IC:\\Users\\leich\\OneDrive\\Dokumente\\Arduino\\Slider_Control_Moba_display_switch_case_Feather" -iprefix "C:\\Users\\leich\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.1-3662303f31/esp32/include/" "@C:\\Users\\leich\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.1-3662303f31/esp32/flags/includes" "-IC:\\Users\\leich\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.1-3662303f31/esp32/dio_qspi/include" "-IC:\\Users\\leich\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.0.0-alpha3\\cores\\esp32" "-IC:\\Users\\leich\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.0.0-alpha3\\variants\\adafruit_feather_esp32_v2" "-IC:\\Users\\leich\\OneDrive\\Dokumente\\Arduino\\libraries\\MobaTools\\src" "-IC:\\Users\\leich\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.0.0-alpha3\\libraries\\Wire\\src" "-IC:\\Users\\leich\\OneDrive\\Dokumente\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\leich\\OneDrive\\Dokumente\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Users\\leich\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.0.0-alpha3\\libraries\\SPI\\src" "-IC:\\Users\\leich\\OneDrive\\Dokumente\\Arduino\\libraries\\Adafruit_SSD1306" "@C:\\Users\\leich\\AppData\\Local\\Temp\\arduino_build_110345/build_opt.h" "@C:\\Users\\leich\\AppData\\Local\\Temp\\arduino_build_110345/file_opts" "C:\\Users\\leich\\OneDrive\\Dokumente\\Arduino\\libraries\\MobaTools\\src\\esp32\\MoToESP32.cpp" -o "C:\\Users\\leich\\AppData\\Local\\Temp\\arduino_build_110345\\libraries\\MobaTools\\esp32\\MoToESP32.cpp.o"
C:\Users\leich\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\MoToESP32.cpp: In function 'void ISR_Stepper()':
C:\Users\leich\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\MoToESP32.cpp:32:5: error: 'timerAlarmWrite' was not declared in this scope; did you mean 'timerWrite'?
32 | timerAlarmWrite(stepTimer, aktAlarm , false); // no autorelaod
| ^~~~~~~~~~~~~~~
| timerWrite
C:\Users\leich\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\MoToESP32.cpp:33:5: error: 'timerAlarmEnable' was not declared in this scope; did you mean 'timerAlarm'?
33 | timerAlarmEnable(stepTimer);
| ^~~~~~~~~~~~~~~~
| timerAlarm
C:\Users\leich\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\MoToESP32.cpp: In function 'void seizeTimerAS()':
C:\Users\leich\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\MoToESP32.cpp:49:31: error: too many arguments to function 'hw_timer_t* timerBegin(uint32_t)'
49 | stepTimer = timerBegin(STEPPER_TIMER, DIVIDER, true); // true= countup
| ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\leich\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.0-alpha3\cores\esp32/esp32-hal.h:84,
from C:\Users\leich\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.0-alpha3\cores\esp32/Arduino.h:36,
from C:\Users\leich\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:11,
from C:\Users\leich\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:199,
from C:\Users\leich\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\MoToESP32.cpp:3:
C:\Users\leich\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.0-alpha3\cores\esp32/esp32-hal-timer.h:35:14: note: declared here
35 | hw_timer_t * timerBegin(uint32_t frequency);
| ^~~~~~~~~~
C:\Users\leich\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\MoToESP32.cpp:50:29: error: too many arguments to function 'void timerAttachInterrupt(hw_timer_t*, void (*)())'
50 | timerAttachInterrupt(stepTimer, &ISR_Stepper, true); // true= edge Interrupt
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\leich\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.0-alpha3\cores\esp32/esp32-hal-timer.h:50:6: note: declared here
50 | void timerAttachInterrupt(hw_timer_t * timer, void (*userFunc)(void));
| ^~~~~~~~~~~~~~~~~~~~
C:\Users\leich\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\MoToESP32.cpp:51:9: error: 'timerAlarmWrite' was not declared in this scope; did you mean 'timerWrite'?
51 | timerAlarmWrite(stepTimer, ISR_IDLETIME*TICS_PER_MICROSECOND , false); // false = no autoreload );
| ^~~~~~~~~~~~~~~
| timerWrite
C:\Users\leich\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\MoToESP32.cpp:52:9: error: 'timerAlarmEnable' was not declared in this scope; did you mean 'timerAlarm'?
52 | timerAlarmEnable(stepTimer);
| ^~~~~~~~~~~~~~~~
| timerAlarm
Das sind Fehler beim Aufruf aus den Hardware Ordner.
Hat du auch die Hardware-Hilfs-Treiber in der Arduino IDE installiert.
Und auch das ESP32 ** Board angemeldet. Wenn JA, dann steht das bei der 2.* IDE unten Rechts in der Ecke.
Spiel mal Blinki auf den ESP32 und sage ob das funktioniert.
Lt. Github laufen die Mobatools mit den ESP-Teilen.
Was mir noch aufgefallen ist. Der ruft die Libs aus "Dokumenten" auf.
Mach mal folgendes. Klicke auf Einstellungen. Da ist ein Pfad angegeben.
In diese Pfad muss der Ordner "libraries" sein. In den Ordner "libraries" sollte der Ordner Mobatools sein.
Ohne den Sketch ist das nur Wahrsagen.
Zeig mal den Code, damit man eine Chance hat das nachzuvollziehen.
Die verstümmelte Meldung ist dafür nicht geeignet.
Jedenfalls bin ich der Meinung das du nur mobben tust, und nix fachliches was mich angeht beiträgst. Sonst hättest du mir dein Superwissen jedenfalls mitgeteilt.
Nur weil Du es behauptest und die Zusammenhänge nicht verstehst, wird sich daran nichts ändern.
Hinweis: Ein Originaler ARDUINO UNO meldet sich als Arduino UNO und ein Nachbau mit einem anderen Chipsatz benutzt die selben Bordeinstellungen ist aber im Gerätemanager als CH340 what ever zu sehen.
Ich kann nix dafür,dass Du es bis heute nicht geschafft hast die Zusammenhänge zu erlernen, aber bitte schieb Dein Unwissen nicht anderen unter, die dann evtl. den gleichen Mist benutzen und sich wundern, warum sie nicht verstanden werden.
Fachliches für Dich ist vergeudete Zeit, wie man immer noch an Deiner Aussage sieht Spannung wäre mA. Obwohl Dir das fachlich widerlegt wurde. Du bist nun mal lernresistent.
Ich hatte die Freude, diese Bibliothek mit einem ESP32 zu testen, was problemlos funktionierte. Allerdings mit "ESP32 Dev Module" und IDE 1.8.19 und ESP32-Core 2.0.14. In dieser Konstellation ist die Kompatibilität also gegeben.
Wenn Du Deine Einstellungen in Richtung meiner Einstellungen veränderst, könntest Du Dich eventuell der Ursache der Fehlermeldungen nähern.
Es wäre durchaus spannend, in diesem deutschsprachigen Teil des Forum mehr über Adafruit Feather ESP32 zu erfahren