diff --git a/src/main.c b/src/main.c index 6f332b2602afb9e6df210a74b36b944f9f9241b7..82dada6002f8b3ad5f6a3c115efc26f11603be40 100644 --- a/src/main.c +++ b/src/main.c @@ -154,7 +154,7 @@ void init_pwm() gpio_set_function(28, GPIO_FUNC_PWM); volatile uint slice_num = pwm_gpio_to_slice_num(28); - pwm_set_clkdiv(slice_num, 133); + pwm_set_clkdiv(slice_num, 125); pwm_set_wrap(slice_num, 0xFFFF); pwm_set_chan_level(slice_num, PWM_CHAN_A, 10); pwm_set_enabled(slice_num, true); @@ -162,10 +162,18 @@ void init_pwm() void pwm_echo_init() { volatile uint slice_num = pwm_gpio_to_slice_num(27); - - pwm_set_clkdiv(slice_num, 1); + /* + // Count once for every 100 cycles the PWM B input is high + 25 pwm_config cfg = pwm_get_default_config(); + 26 pwm_config_set_clkdiv_mode(&cfg, PWM_DIV_B_HIGH); + 27 pwm_config_set_clkdiv(&cfg, 100); + 28 pwm_init(slice_num, &cfg, false); + 29 gpio_set_function(gpio, GPIO_FUNC_PWM); + */ + // count once for every 42 cycles the PWM B input is high + pwm_set_clkdiv(slice_num, 42); pwm_set_wrap(slice_num, 0xFFFF); - pwm_set_clkdiv_mode(slice_num, PWM_DIV_FREE_RUNNING); + pwm_set_clkdiv_mode(slice_num, PWM_DIV_B_HIGH); pwm_set_enabled(slice_num, true); } int a = 0; @@ -199,10 +207,11 @@ int main() init_pwm(); pwm_echo_init(); - gpio_set_irq_enabled_with_callback(27, GPIO_IRQ_LEVEL_LOW, true, &callback); + gpio_set_irq_enabled_with_callback(27, GPIO_IRQ_LEVEL_HIGH, true, &callback); while (1) - ; + { + } /* timer_hw->dbgpause = 0; gpio_init(27);