From c71a162d867ecdce0ca21f259f1d7f8fd3efa767 Mon Sep 17 00:00:00 2001 From: Tom-on64 Date: Fri, 24 Apr 2026 16:58:20 +0200 Subject: [PATCH] forgor main.cc :skull: --- main.cc | 43 +++++++++++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/main.cc b/main.cc index cae41b4..22edcc6 100644 --- a/main.cc +++ b/main.cc @@ -1,15 +1,21 @@ -#include "buttons.h" -#include "macro.h" -#include "pico/stdlib.h" -#include -#include +#include +#include #include #include #include -#include "const.h" +#include + +#include "hardware/gpio.h" #include "hardware/pwm.h" #include "hardware/adc.h" +#include "pico/multicore.h" +#include "pico/stdlib.h" + +#include "buttons.h" +#include "const.h" +#include "macro.h" #include "state.h" +#include "pwm.h" state_t state; @@ -20,8 +26,6 @@ void init_all() { const uint8_t in_gpio[] = {VCO_BUTTON,QUANT_BUTTON,AMEN_BUTTON}; const uint8_t adc_gpio[] = {MUX0,MUX1}; - gpio_set_function(AUDIO_OUT, GPIO_FUNC_PWM); - for (uint8_t i=0; i < ARRAY_LENGTH(out_gpio); i++) { gpio_init(out_gpio[i]); gpio_set_dir(out_gpio[i], true); @@ -37,14 +41,33 @@ void init_all() { adc_select_input(i); } - gpio_pull_down(VCO_BUTTON); - gpio_set_irq_enabled_with_callback(VCO_BUTTON, GPIO_IRQ_EDGE_RISE, true, &handle_vco_change); + // PWM bullshit + gpio_set_function(AUDIO_OUT, GPIO_FUNC_PWM); + + uint slice = pwm_gpio_to_slice_num(AUDIO_OUT); + pwm_config cfg = pwm_get_default_config(); + pwm_config_set_wrap(&cfg, 3400); + pwm_init(slice, &cfg, true); + + pwm_clear_irq(slice); + pwm_set_irq_enabled(slice, true); + irq_set_exclusive_handler(PWM_IRQ_WRAP, pwm_isr); + irq_set_enabled(PWM_IRQ_WRAP, true); +} + +__attribute__((noreturn)) +void core1_main(void) { + while (1) { + update_buttons(); + } } __attribute__((noreturn)) int main() { init_all(); + multicore_launch_core1(core1_main); + while (1) {} }