3#if defined(RP2040_HOWER)
5#include "hardware/adc.h"
6#include "hardware/clocks.h"
7#include "hardware/gpio.h"
8#include "hardware/pwm.h"
9#include "hardware/structs/clocks.h"
55 is_timer_started =
false;
56 for (
auto pin : pins) {
66 TimerAlarmRepeating ticker;
68 virtual void startTimer()
override {
70 ticker.setCallbackParameter(
this);
73 is_timer_started =
true;
77 void setupPWM()
override {
83 pins.resize(audio_config.channels, empty);
86 for (
int j = 0;
j < audio_config.channels;
j++) {
88 int gpio = audio_config.pins()[
j];
89 LOGI(
"PWM pin %d", gpio);
92 pins[channel].audioChannel =
j;
93 pins[channel].gpio = gpio;
102 if (audio_config.pwm_frequency == 0){
137 void setupTimer()
override {}
140 virtual int maxChannels()
override {
return 16; };
143 virtual int maxOutputValue()
override {
144 return std::pow(audio_config.resolution, 2) - 1;
157 self->playNextFrame();
#define TRACED()
Definition AudioLoggerIDF.h:31
#define LOGI(...)
Definition AudioLoggerIDF.h:28
#define LOGD(...)
Definition AudioLoggerIDF.h:27
@ HZ
Definition AudioTypes.h:48
PWMDriverAVR PWMDriver
Platform-specific PWM driver alias for AVR.
Definition PWMDriverAVR.h:13
constexpr const _Ep * end(initializer_list< _Ep > __il) noexcept
Definition InitializerList.h:63