一段时间后计时器停止

9个职位/0个新职位
最后一篇文章
库斯科
离线
最后一次见到:3年1个月前
已加入:2014-09-24 14:43
一段时间后计时器停止

我使用计时器向我的Windows应用程序发送BT通知。但在同一时间后,计时器停止工作。当与keu timer\u set(APP\u SAMPLE128\u timer,TASK\u APP,50)连接时,计时器启动;它工作一段时间,然后在不应该的时候停止。每次都有不同的时间段。我和Keil uvision一起调试。当定时器停止工作时,我按stop,程序指针在GLOBAL\u INT\u START()上。当我单击“继续”时,计时器又开始工作。
当计时器停止工作时,我仍然可以写入一个配置文件特性,因此程序不会完全停止。
下面是我的计时器处理程序函数:

int sample128\u timer\u handler(ke\u msg\u id\u t const msgid,struct gapm\u cmp\u evt const*param,ke\u task\u id\u t const dest\u id,ke\u task\u id\u const src\u id){
浮动tmp;
静态uint8\u t toggle=1;
tmp=压力读数(传感器1);
绿色Led(切换);
切换^=1;
struct sample128\u upd\u char2\u req*req=KE\u MSG\u ALLOC(sample128\u upd\u char2\u req,TASK\u sample128,TASK\u APP,sample128\u upd\u char2\u req);
memcpy(&req->val,&tmp,sizeof(float));
req->conhdl=应用程序_环境控制;
发送消息(请求);
KEU定时器设置(应用程序样本128定时器,任务应用程序,20);
返回(已消耗的消息);
}

设备:
MT\u对话框
离线
最后一次见到:1个月1周前
工作人员
已加入:2015-06-08 11:34
嗨,库斯科,

嗨,库斯科,

你能试着检查一下这个事件是否发生在没有传感器读数的情况下吗?你能增加你发送的值吗。另外,您是否可以检查事件是否发生在您连接到android设备时?您的代码中是否有任何地方取消了计时器(invoke ke\u timer\u clear()),也许它以某种方式通过了这个函数。我测试了发送一个浮点值加上一个固定的值,我没有看到任何关于没有执行计时器的问题。

谢谢你的对话

库斯科
离线
最后一次见到:3年1个月前
已加入:2014-09-24 14:43
我对传感器做了评论

我评论了传感器读数,事件仍然发生。我添加了第二个定时器只是为了切换另一个led灯,没有BT的东西。当第一个计时器停止时,第二个计时器也停止。我在断开连接功能中停止第一个计时器(在这里我递增并发送通知),并在设备连接时启动它。闪烁的计时器在app\u set\u dev\u config\u complete\u func()中启动,我从不停止它。因此,当两个计时器同时中断时,我按stop,然后继续。第一个计时器重新开始工作(因为断开和连接例程),但第二个闪烁计时器再也不会启动。
我还没有安卓设备来测试这个。

库斯科
离线
最后一次见到:3年1个月前
已加入:2014-09-24 14:43
我做了另一件事。我

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

MT\u对话框
离线
最后一次见到:1个月1周前
工作人员
已加入:2015-06-08 11:34
嗨,库斯科,

嗨,库斯科,

在580的documents部分的applications notes部分中有一个.z雷竞技安卓下载ip文件,其中包含一些创建自定义概要文件的示例。第7.2节后面的项目sample128\u是一个示例,它实现了一个计时器通过BLE发送通知。在android手机上,我看不到任何关于计时器的问题,并且通知被正确接收。我假设您的实现是类似的(只要在连接时激活计时器,并在计时器的每个超时时间发送通知),您能用这个例子来尝试一下吗?

谢谢你的对话

库斯科
离线
最后一次见到:3年1个月前
已加入:2014-09-24 14:43
第7节后的样本

第7.2节之后的示例128撸工作正常。但在我的情况下,什么能阻止计时器工作呢?

MT\u对话框
离线
最后一次见到:1个月1周前
工作人员
已加入:2015-06-08 11:34
嗨,库斯科,

嗨,库斯科,

您是否清除了代码中任何地方的计时器,或在ble唤醒前重置计时器?这是我能想到计时器不会消失的唯一原因。因为您有一个工作项目,您可以比较并找到演示和代码之间的差异。

谢谢你的对话

库斯科
离线
最后一次见到:3年1个月前
已加入:2014-09-24 14:43
不,我不清除计时器

不,我没有清除计时器,我只在处理函数中重置计时器。可能是uart出了什么问题。我会比较和报告。

库斯科
离线
最后一次见到:3年1个月前
已加入:2014-09-24 14:43
这是我的错

periph_init()函数有问题。我在7.2节之后的sample128\u中更改了寄存器设置,现在计时器工作正常,过了一段时间不会停止。谢谢你的帮助。

主题已锁定