Hi! I am using an nRF51 DK board and the app_pwm library. I am using SDK 12.3.0.
Why doesn't
app_pwm_disable(&PWM1);
stop the PWM? I call it right after initialization:
// initialization in main.c static int pwm_value = 50; void pwm_complete_callback(uint32_t pwm_instance_index) { } APP_PWM_INSTANCE(PWM1,1); app_pwm_config_t pwm1_cfg = APP_PWM_DEFAULT_CONFIG_1CH (3822L, 25); // in main() function: NRF_LOG_INFO("Initializing PWM For Buzzer...\r\n"); err_code = app_pwm_init(&PWM1, &pwm1_cfg, pwm_complete_callback); APP_ERROR_CHECK(err_code); while (app_pwm_channel_duty_set(&PWM1, 0, pwm_value) == NRF_ERROR_BUSY); // !!! Why doesn't this stop PWM? app_pwm_disable(&PWM1); // Start execution. NRF_LOG_INFO("Blinky Start!\r\n"); advertising_start(); // Enter main loop. for (;;) { if (NRF_LOG_PROCESS() == false) { power_manage(); } }
... as well as in a button handler, and neither stop PWM from happening.
I am using it to control a buzzer, so it doesn't matter whether it stops high or low. It just needs to stop.
None of the solutions on other threads worked, and they were all for older versions of the SDK <10.