你好,
我们使用PSOC4在组合和CAPSENSE应用。为了减少噪声,我们正尝试在BLE间隔之间执行CAPSSENSE活动。因为我们现在正在做的是一堆混乱的问题。
这个计划的概要是这样的。通常你有一些类似的事情:
而(1){/*CyByLoPraceSeXScript()允许BLE栈处理未决事件*/CyByl PraseSevScript();
做你的东西
}
在做“我们的东西”的时候,我们有兴趣知道在BLE想做某事之前还有多少时间。关于如何进入“祝福深度睡眠”的应用笔记提供了一个解决方案。
UIT1616T S
tista Stime= CythGETYRG32(CyReGeLyBuleBelelyTimeAuthl);
UIT1616T AdvIt瞬时= CythGETYRG32(CyReGeLeBuleBeleldAdv.NEXTY瞬间);UIT1616T iITIN瞬时= CythGETYGRI32(CyrGeLyBuleBulelyIntNEXTY瞬间);UIT1616T SCAN即时= CythGETYRG32(CyReGeLyBulyBelelsSCANL.NEXTIVITY);UIT1616T CEIONTITY = CythGETYRG32(CyReGeLyBulyBelelgNxTyxCeIt即时);
然后我们选择最接近的事件。并不断检查CygReGyBulyBelelyTimyAdvl,看看我们的时间是否用完了。到目前为止,我希望如此。然而,麻烦一开始就发生了。DOCS说,我们必须检查LL是否空闲,然后读取TimeOffice,即CythGETYGRI32(CyrgElgBluleBlellx CllcLog-CONFIG)& GT;& GT;7)和1。
在某些情况下,此操作*出现*抛出硬故障。现在我可以想象一下,如果一些外围时钟被关闭,这是一个非法读取,但是读在调试器中工作,所以我不能排除任何东西。可能是内存损坏、堆栈故障、ISR返回的一些错误。
我们正在寻找澄清是否有一些情况会导致读读错误,如果是这样的话,解决办法是什么。
当做,
乔恩撬