0
我正在使用SDK 12.0.0。低功耗PWM庫:如果從處理程序調用low_power_pwm_stop,則PWM不會停止。這是一個錯誤?
我正在與low_power_pwm_init()
一起初始化pwm,並在初始化時傳遞了一個處理函數。我想停止處理程序的pwm,因此我從處理程序調用low_power_pwm_stop()
。我觀察到pwm不停止。
我試圖調查此原因,發現low_power_pwm.c中的pwm_timeout_handler()
正在重新啓動pwm。以下是可疑的片段。
if (p_pwm_instance->pwm_state == NRF_DRV_STATE_INITIALIZED)
{
p_pwm_instance->pwm_state = NRF_DRV_STATE_POWERED_ON;
err_code = app_timer_start(*p_pwm_instance->p_timer_id, p_pwm_instance->timeout_ticks, p_pwm_instance);
APP_ERROR_CHECK(err_code);
}
在low_power_pwm_stop()
,p_pwm_instance->pwm_state
分配NRF_DRV_STATE_INITIALIZED
和上述片斷如果駕駛員狀態是NRF_DRV_STATE_INITIALIZED
定時器啓動,引起PWM再次爲ON。
這是一個錯誤?