From 81d3344d0893868e659a8ef2fa935e9b6ef2db3b Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Tue, 5 Jul 2022 11:20:33 -0400 Subject: [PATCH] Update cubesatsim.ino --- cubesatsim/cubesatsim.ino | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/cubesatsim/cubesatsim.ino b/cubesatsim/cubesatsim.ino index 01c3a53b..6a6ea084 100644 --- a/cubesatsim/cubesatsim.ino +++ b/cubesatsim/cubesatsim.ino @@ -1984,6 +1984,8 @@ void start_ina219() { void start_pwm() { // based on code https://github.com/rgrosset/pico-pwm-audio // + pwm_value = 128 - pwm_amplitude; + set_sys_clock_khz(125000, true); gpio_set_function(AUDIO_OUT_PIN, GPIO_FUNC_PWM); @@ -2016,7 +2018,7 @@ void start_pwm() { pwm_set_gpio_level(AUDIO_OUT_PIN, 0); } - +/* void pwm_interrupt_handler() { // based on code https://github.com/rgrosset/pico-pwm-audio // @@ -2032,3 +2034,25 @@ void pwm_interrupt_handler() { wav_position = 0; } } +*/ + +void pwm_interrupt_handler() { + pwm_clear_irq(pwm_gpio_to_slice_num(AUDIO_OUT_PIN)); + pwm_counter++; + if (pwm_counter > pwm_counter_max) { + pwm_counter -= pwm_counter_max; + if (random(0,2) == 1) + pwm_rnd_bit *= (-1.0); + + if ((pwm_value == (128 - pwm_amplitude)) && (pwm_rnd_bit == 1)) { + pwm_value = 128 + pwm_amplitude; + Serial.print("."); + } + else { + pwm_value = 128 - pwm_amplitude; + Serial.print(" "); + } + } + pwm_set_gpio_level(AUDIO_OUT_PIN, pwm_value); +// wav_position++; +}