我可以不关闭外设在下一个睡眠,使定时器0可以工作

⚠️
你好。。谢谢你来参加论坛。令人兴奋的消息!我们现在正在移动到我们的新论坛平台,将提供更好的功能,并包含在主对话网站的过程。所有帖子和账号都已迁移。我们现在只接受新论坛上的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
8个职位/0个新职位
最后一篇文章
布伦特•郑
离线
最后一次见到:1个月1周前
已加入:2017-08-25 07:50
我可以不关闭外设在下一个睡眠,使定时器0可以工作

嗨,Dialog
在我的项目中,我需要测量GPIO中断从高到低和从低到高之间的时间,有时时间很短,比如0.1ms。所以我不能用滴答。为了节省功耗,我希望设备保持在ext sleep,timer0在后台工作,并将GPIO设置为wake。一旦GPIO中断触发,我将读取计时器0计数并记录它。
现在的问题是,默认情况下,timer0在ext sleep期间是关闭的。我可以将系统设置为extsleep,但保持timer0开机吗?
谢谢。

顺致敬意,
布伦特·郑

设备:
STS\U对话框(未验证)
你好,布伦特•郑,

你好,布伦特•郑,

计时器(0和2)在设备和所有外围设备进入睡眠状态时关闭,在扩展睡眠模式下启用计时器的唯一选项是内核计时器(app\u easy\u timer())。在这种情况下,您必须记住,在计时器结束后,每次执行此过程时都会调用中断并唤醒BLE。

非常感谢。

STS\U对话框。

布伦特•郑
离线
最后一次见到:1个月1周前
已加入:2017-08-25 07:50
亲爱的STS\U Dialog,

亲爱的STS\U Dialog,

谢谢你的快速回复。
内核计时器不能满足我的要求,因为我需要得到时间周期小于一个滴答。我可以保持所有的外围设备在外接睡眠?
谢谢。

STS\U对话框(未验证)
你可以保留所有的

你可以保持所有的外设,但在这种情况下,你已经把你的定时器(0或2)更新的LP时钟。您可以建议DA14585的数据表(在数据表部分的文档选项卡中)。在您的场景中,static inline void arch\u turn\u peripherals\u off()函数将根据您的实现计划工作。

非常感谢。

STS\U对话框。

布伦特•郑
离线
最后一次见到:1个月1周前
已加入:2017-08-25 07:50
亲爱的STS\U Dialog,

亲爱的STS\U Dialog,

但我遇到了问题,当试图启用所有外设在外部睡眠。我尝试在arch\u turn\u peripherals\u off功能中更改以下内容:
//SetBits16(PMU\u CTRL\u REG,PERIPH\u SLEEP,1);//关闭外围电源域
SetBits16(PMU\u CTRL\u REG,PERIPH\u SLEEP,0);
即使没有开启定时器(0或2),设备也会在启动期间重复复位。
如果我在arch\u goto\u睡眠中不调用arch\u关闭外围设备,系统可以正常运行。但系统似乎没有进入ext sleep,因为SCB->SCR |=1<<2;仅在arch\u turn\u peripherals\u off中设置。

所以,你能告诉我如何修改SDK代码,使应用程序外设在ext睡眠时打开吗?
谢谢。

STS\U对话框(未验证)
你好,布伦特•郑,

你好,布伦特•郑,

最好不要修改核心SDK代码,因为这可能会有额外的问题,需要大量的测试。

谢谢,

STS\U对话框

布伦特•郑
离线
最后一次见到:1个月1周前
已加入:2017-08-25 07:50
亲爱的STS\U Dialog,

亲爱的STS\U Dialog,

如果我能在延长睡眠模式下使用timer0,这对电池寿命非常有帮助。你能帮我查一下吗?
谢谢。

顺致敬意,
布伦特·郑

STS\U对话框(未验证)
你好,

你好,

我们现在无法支持计时器0的那个用例。

请检查以下链接:

https://support.dialog-semiconductor.com/smarttag-ref-design-sleep-mode-...

谢谢,

STS\U对话框。