定时器在一段时间后停止

9个帖子/ 0新
最后一篇
Cusko.
离线
最后一次露面:3年1个月前
加入:2014-09-24 14:43
定时器在一段时间后停止

我使用计时器向我的Windows应用程序发送BT通知。但同时定时器停止工作。当使用ke_timer_set(app_sample128_timer,task_app,50)发生连接时计时器启动;它适用于一段时间,然后它不应该停止。每次不同的时间段。我用Keil Uvision调试。当定时器停止运行时,我按STOP且程序指针位于global_int_start()上。当我点击继续时,计时器重新开始工作。
当计时器停止工作时,我仍然可以写入个人资料特性,因此程序不会完全停止。
这是我的计时器处理程序功能:

int sample128_timer_handler(ke_msg_id_t const msgs,struct gapm_cmp_evt const * param,ke_task_id_t const dest_id,ke_task_id_t const src_id){
浮动TMP;
静态uint8_t toggle = 1;
tmp = pressure_read(Sensor_1);
LED_GREEN(切换);
切换^ = 1;
struct sample128_upd_char2_req * req = ke_msg_alloc(sample128_upd_char2_req,task_sample128,task_app,sample128_upd_char2_req);
Memcpy(&Req-> Val,&TMP,Sizeof(Float));
req-> conhdl = app_env.conhdl;
KE_MSG_SEND(REQ);
ke_timer_set(app_sample128_timer,task_app,20);
return(ke_msg_consumed);
}

设备:
mt_dialog.
离线
最后一次露面:1个月3周前
职员
加入:2015-06-08 11:34
嗨cusko,

嗨cusko,

如果没有读取传感器,您可以尝试检查此事件是否发生此事件?您可以递增您发送的值。还可以在连接到Android设备时检查事件是否会检查事件吗?在您的代码中是否有任何地方取消计时器(Invoke ke_timer_clear())可能会以某种方式通过此功能。通过发送浮动值递增的浮动值递增,我没有看到关于未执行定时器的任何问题。

谢谢mt_dialog.

Cusko.
离线
最后一次露面:3年1个月前
加入:2014-09-24 14:43
我评论了传感器

我评论了传感器阅读,事件仍然发生。我添加了第二个定时器只是为了切换另一个LED灯,没有BT的东西。当第一个计时器停止时,第二个定时器也停止。我在断开功能中停止第一个计时器(其中我递增和发送通知),并在连接设备时启动它。闪烁的计时器从App_set_dev_config_complete_func()开始,我从不停止它。因此,当两个定时器同时发生时,我按STOP然后继续。第一个计时器开始再次工作(因为断开连接和连接例程),但第二个闪烁计时器从未重新开始。
我没有Android设备才能测试。

Cusko.
离线
最后一次露面:3年1个月前
加入:2014-09-24 14:43
我做了另一件事。一世

我做了另一件事。我从第一个计时器中删除了所有BT的东西,问题仍然存在。设备已连接,但定时器不再工作了。

mt_dialog.
离线
最后一次露面:1个月3周前
职员
加入:2015-06-08 11:34
嗨cusko,

嗨cusko,

在Applications Notes中580的文档部分中,存在一个.zip文件,其中雷竞技安卓下载包括创建自定义配置文件的一些示例。Project Sample128_After第7.2节是实现一个单个计时器以通过BLE发送通知的示例。在Android手机上,我没有看到有关计时器的任何问题,并且正确接收通知。我想你的实现是相似的(只需在连接时激活计时器并在计时器的每次时发送通知),可以请尝试使用该示例吗?

谢谢mt_dialog.

Cusko.
离线
最后一次露面:3年1个月前
加入:2014-09-24 14:43
示例128_Awter第7节

Sample128_After第7.2节工作正常。但是什么会停止计时器在我的案件中工作?

mt_dialog.
离线
最后一次露面:1个月3周前
职员
加入:2015-06-08 11:34
嗨cusko,

嗨cusko,

您是否在代码中的任何位置清除定时器,或者在BLE醒来之前重置计时器?这些是我可以考虑一个计时器不经过的唯一原因。由于您有一个工作项目,您可以比较并找到演示和代码之间的差异。

谢谢mt_dialog.

Cusko.
离线
最后一次露面:3年1个月前
加入:2014-09-24 14:43
不,我不清楚定时器

不,我不清楚定时器,我只在处理程序函数中重置计时器。也许是一些UART问题或什么的。我会比较和报告。

Cusko.
离线
最后一次露面:3年1个月前
加入:2014-09-24 14:43
这是错误的

Periph_init()函数是错误的。我在Sample128_After第7.2节中更改寄存器设置,现在定时器工作确定,稍后一段时间后不要停止。感谢帮助。

主题锁定