亲爱的支持,
我在DA14580定制板上工作。在你的帮助下,我们取得了很大的进步。现在我们有了一个新的问题,我们的代码执行不断受到攻击
/**
****************************************************************************************
*@平台重置的简短包装。它将在软件重置前被调用
*从堆栈发出。可能的原因将包含在错误字段中
*@param[in]错误重置的原因。它将是以下之一:
*复位无错误,复位内存分配失败,复位到ROM,复位和加载固件
*@return一无所获。
****************************************************************************************
*/
无效包装平台重置(uint32错误)
{
ASSERT_WARNING(error==RESET_AFTER_SPOTA_UPDATE);//在SPOTA重置时不要中断
平台复位功能(错误);
}
到目前为止,我一直在篡改ble\u app\u perpheral项目,以适应我们的需要。
哪些是
1从3个温度传感器收集数据,我们在那里获得ADC数据
2从一个传感器收集数据,我们使用定时器0记录脉冲持续时间,使用已经存在的PWM代码。
三。使用一个间隔计时器来获取一个间隔的读数,为此,我使用“systemtick code”来设置一个15分钟的计时器。在应用程序初始化时启动(默认的应用程序在初始化时启动)。
总的来说,我们要实现的是在15分钟的时间间隔内获得一个读数、3个温度和1个传感器(PWM),并将它们打包到一个数据包中并在本地存储(缓冲区大小10)。当应用程序请求数据时,我们会一个接一个地发送这些数据。
我们能够发送3个温度数据和虚拟传感器数据打包成功。但是,当我们启用定时器0并尝试使用PWM时,我们遇到了这个错误=更新后重置。
请给我指点。另外,请您提供提示,我们如何使蓝牙板铸造间隔,以节省电流消耗/。
顺致敬意,
斯里兰卡
注:如前所述https://support.dialog-semiconductor.com/how-notify-when-i-push-button我试过微调延迟,但没有用。还有什么建议吗。

嗨ksrgopinath,
正如您发布的链接中所提到的,在大多数情况下,当您分配了太多的消息并且没有使用它们时,就会发生这种重置,最终会耗尽堆,因此会发生wrap\u平台重置。我看不出启用timer0和具有这种行为的PWM功能之间有什么明显的关系,因为使用timer并不分配任何消息,也不涉及与堆栈的任何交互。因此,请检查您的代码中是否分配了未释放的消息,或者您发送通知的频率超出了连接间隔所能支持的频率,例如,您设置了一个内核计时器,以每10毫秒生成一次通知,并且您的连接间隔为每2秒,这将强制消息堆积并淹没堆。
关于你的第二个问题,我不知道我是否得到确切的问题,但没有通用的最佳配置的连接间隔,你的设备应该有。一般来说,我们可以假设只要您保持在睡眠模式,您消耗的电力就越少,但当您的连接间隔相当大时,这将迫使设备在每个连接间隔上使无线电接收器在较长时间内(由于时钟漂移)处于活动状态。此外,选定的连接间隔必须符合应用程序的要求。因此,根据您的理解,所选连接间隔必须满足应用程序的要求,即使应用程序不需要经常进行数据传输,也需要在选择短连接间隔或大连接间隔之间进行权衡。
谢谢你的对话