прерывание таймера не работает на плате esp32s2
C:\Users\Admin\AppData\Local\Temp\.arduinoIDE-unsaved2024610-7740-sfbutd.e9d77\sketch_jul10a\sketch_jul10a.ino: In function 'void setup()':
C:\Users\Admin\AppData\Local\Temp\.arduinoIDE-unsaved2024610-7740-sfbutd.e9d77\sketch_jul10a\sketch_jul10a.ino:97:22: error: too many arguments to function 'hw_timer_t* timerBegin(uint32_t)'
97 | timer1 = timerBegin(0, 80, true); // 80 MHz APB clock / 80 = 1 MHz (1 us per tick)
| ~~~~~~~~~~^~~~~~~~~~~~~
In file included from C:\Users\Admin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\cores\esp32/esp32-hal.h:84,
from C:\Users\Admin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\cores\esp32/Arduino.h:36,
from C:\Users\Admin\AppData\Local\Temp\arduino\sketches\943207E00B32310A1DFC79D26F7275B3\sketch\sketch_jul10a.ino.cpp:1:
C:\Users\Admin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\cores\esp32/esp32-hal-timer.h:35:13: note: declared here
35 | hw_timer_t *timerBegin(uint32_t frequency);
| ^~~~~~~~~~
C:\Users\Admin\AppData\Local\Temp\.arduinoIDE-unsaved2024610-7740-sfbutd.e9d77\sketch_jul10a\sketch_jul10a.ino:99:23: error: too many arguments to function 'void timerAttachInterrupt(hw_timer_t*, void (*)())'
99 | timerAttachInterrupt(timer1, &dim_check, true);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\Admin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\cores\esp32/esp32-hal-timer.h:50:6: note: declared here
50 | void timerAttachInterrupt(hw_timer_t *timer, void (*userFunc)(void));
| ^~~~~~~~~~~~~~~~~~~~
C:\Users\Admin\AppData\Local\Temp\.arduinoIDE-unsaved2024610-7740-sfbutd.e9d77\sketch_jul10a\sketch_jul10a.ino:101:3: error: 'timerAlarmWrite' was not declared in this scope; did you mean 'timerWrite'?
101 | timerAlarmWrite(timer1, freqStep, true);
| ^~~~~~~~~~~~~~~
| timerWrite
C:\Users\Admin\AppData\Local\Temp\.arduinoIDE-unsaved2024610-7740-sfbutd.e9d77\sketch_jul10a\sketch_jul10a.ino:103:3: error: 'timerAlarmEnable' was not declared in this scope; did you mean 'timerAlarm'?
103 | timerAlarmEnable(timer1);
| ^~~~~~~~~~~~~~~~
| timerAlarm
exit status 1
Compilation error: too many arguments to function 'hw_timer_t* timerBegin(uint32_t)'
1 ответ
▲ 0
Я думаю, что Espressif меняет API для использования таймера.
В версии 3.0.2 (которую вы используете) новый API — timerBegin(uint32_t frequency). Пример библиотеки можно посмотреть здесь. Для версии 2.0.17 и более ранних API — timerBegin(0, 80, true), как показано здесь.
У вас есть два варианта:
- откатите ESP32 Arduino Core (сделайте это в меню IDE Инструменты->Плата->Менеджер плат) до версии 2.0.17, если вы хотите использовать API, который вы использовали в своем скетче; или
- Перенесите свой код на основе нового API таймера с помощью новой документации по API.
Если вы новичок в программировании Arduino, первый вариант будет для вас проще.
,
@hcheung
Смотрите также:
- esp32, platformio A fatal error occurred: Packet content transfer stopped (received 8 bytes) *** [upload] Error 2
- Драйверы для чипа последовательного порта CH9102X
- Контакты RX и TX на esp32
- Как выбрать альтернативные контакты I2C на ESP32?
- ESP32 - "Детектор Браунаута был активирован" при запуске Wi-Fi
- Как преобразовать форматированный оператор print в строковую переменную?
- Питание esp32cam от аккумулятора
- Использование esp-wroom-32 без платы разработки
какой у вас вопрос? ... пожалуйста, добавьте к своему сообщению конкретный вопрос, на который можно ответить, @jsotola
Привет, Саранья, выше указано несколько ошибок. С какой из них вам нужна помощь?, @Rohit Gupta
У меня были вопросы, которые высмеивали, закрывали и удаляли за гораздо меньшие деньги, чем этот. Почему модераторы ничего не делают?, @Clóvis Fritzen
Похоже, ваш код основан на более ранней версии ESP32 Arduino Core. Вы можете либо понизить версию ESP32 Arduino Core до версии ниже 3.0.0, либо изменить код для использования более нового API таймера. См. [https://docs.espressif.com/projects/arduino-esp32/en/latest/migration_guides/2.x_to_3.0.html#timer](https://docs.espressif.com/projects/arduino-esp32/en/latest/migration_guides/2.x_to_3.0.html#timer)., @StarCat