处理程序循环特征

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
5个帖子/ 0新
最后发表
richbk
离线
最后看到:6个月4周前
加入:2017-04-24 20:24
处理程序循环特征

你好,

我正在尝试设置一个特征处理程序,当提供01的值时,它开始播放循环直到提供00的曲调。我正在使用BLE_APP_PERIANTAL作为指导,并已修改LED ON / OFF状态,以便在我想要的循环中开始。我需要帮助是退出while循环的最佳方式,也可能是更好的方法来接近这个。从我的理解虽然在循环中,但处理程序实际上不会做任何事情,这是正确的吗?

提前非常感谢

设备:
MT_dialog
离线
最后看到:6个月3个星期前
工作人员
加入:2015-06-08 34
嗨richbk,

嗨richbk,

我不确定我完全理解你正在尝试做什么,你将在特征中写入一个值,这将触发一个处理程序,将保持ARM在一个while循环(因此,调将继续播放)?我也不能理解你的意思,“处理器实际上不会做任何事情”。如果你通过写一个特征来触发那个处理程序并且在那个处理程序中有一个while循环,只要while条件返回true, ARM就会继续在那个处理程序中执行while循环。这可能会导致不同类型的问题,具体取决于while要花多少时间来完成执行。如果你保持手臂在while循环,你不会执行调度器(rwip_schedule()函数),这意味着你将失去祝福活动,你不会更新监管机构(如果您想使用它,但这是最你的问题)。如果你想玩,调整,因为大量的时间没有任何问题你要触发操作播放(优化),然后使用app_on_ble_powered()或app_on_system_power()回调函数,以驱动扬声器(请看看嗯- b - 051 da1458x Reference.pdf软件平台in paragraph 7.2.1). Anyway since i am not sure that i fully understand your question, let me know if there is anything that i misunderstood.

谢谢mt_dialog.

richbk
离线
最后看到:6个月4周前
加入:2017-04-24 20:24
嗨MT_Dialog,

嗨MT_Dialog,

非常感谢您花时间回复。

为了更详细地解释我要做的,我要做一个与手机相连的设备。当话机振铃时,设备使用PWM方式播放曲子,当话机停止振铃时,设备停止播放曲子。为了开始播放音乐,我使用了一个特性(像LED例子),当它被设置为01时,它播放音乐,当它被设置为00时,它停止播放音乐。

正如您所建议的那样,问题是,当我读取特征并启动循环的曲调时,系统在循环中卡在循环中,无需检测特征变化,因此断开循环。

考虑到这一点,你会建议使用app_on_ble_powered()回调来满足我的需要吗?我是否将调优循环放在回调函数中,并在整个调优循环中使用标志来确定特征是否已经改变,以停止播放调优?

非常感谢

MT_dialog
离线
最后看到:6个月3个星期前
工作人员
加入:2015-06-08 34
嗨richbk,

嗨richbk,

既然你想产生一个PWM,为什么你不使用580的定时器来这样做,只是设置它,并触发定时器时的特性被写入。通过切换gpio到一个while环,你不能产生PWM(我认为这是你想做的在你的while环一些延迟,当特征被写),即使使用app_on_ble_powered,你也无法控制GPIO切换将通过该函数的频率,而且你也不能仅仅延迟代码的执行以获得适当的时间。如果你不想使用硬件定时器和PWM功能,你想只是切换gpio,你也可以使用内核定时器,但要知道,他们有一个准确性的10ms,他们不准确的PWM专用定时器。所以我的建议是使用timer0和PWM functionallity也使用相同的方案smart_tag项目(检查user_proxr_alert_start()函数)时,IAS特点是书面(你需要禁用睡眠时为了不进入睡眠模式PWM触发)。

谢谢mt_dialog.

richbk
离线
最后看到:6个月4周前
加入:2017-04-24 20:24
嗨MT_dialog,

嗨MT_dialog,

非常感谢,这正是我想要的。