首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >低功耗PWM库:如果从处理程序中调用low_power_pwm_stop,PWM不会停止.这是个虫子吗?

低功耗PWM库:如果从处理程序中调用low_power_pwm_stop,PWM不会停止.这是个虫子吗?
EN

Stack Overflow用户
提问于 2017-02-22 14:14:53
回答 1查看 136关注 0票数 0

我正在使用SDK12.0.0。

我正在与low_power_pwm_init()合作初始化脉宽调制,并且在初始化过程中通过了一个处理程序。我想从处理程序停止脉宽调制,因此我从处理程序中调用low_power_pwm_stop()。我观察到pwm并没有停止。

我试图调查造成这种情况的原因,发现pwm_timeout_handler() in low_power_pwm.c正在重新启动pwm。下面是可疑的片段。

代码语言:javascript
复制
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,则会启动计时器,从而使NRF_DRV_STATE_INITIALIZED再次打开。

这是个虫子吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-27 07:54:56

我在北欧的devzone上发布了这个问题,下面是我从一位北欧员工那里得到的回答

嗨, 我可以看到情况会是这样,并会在内部报告。 您可以在事件处理程序中设置一个标志,并在main中调用停止例程。 Ole

所以我想这是北欧sdk代码中的一个bug。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42393960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档