diff --git a/pwm.c b/pwm.c new file mode 100644 index 0000000..bcc2e1b --- /dev/null +++ b/pwm.c @@ -0,0 +1,21 @@ +#include +#include + +#include "const.h" + +#include "pwm.h" + +void pwm_isr(void) { + static uint slice = -1, chan = -1; + if (slice == -1) slice = pwm_gpio_to_slice_num(AUDIO_OUT); + if (chan == -1) chan = pwm_gpio_to_channel(AUDIO_OUT); + + pwm_clear_irq(slice); + + // TODO: + float sample = 0.0f; + + uint16_t level = (uint16_t)((sample + 1.0f) * 0.5f * 3400.0f); + pwm_set_chan_level(slice, chan, level); +} + diff --git a/pwm.h b/pwm.h new file mode 100644 index 0000000..7a5fae3 --- /dev/null +++ b/pwm.h @@ -0,0 +1,4 @@ +#pragma once + +void pwm_isr(void); +