App_easy_timer用于实现挂钟

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
3个帖子/ 0个新
最后发表
stanley_yeh
离线
最后看到:2年1周前
加入:2016-12-23 06:52
App_easy_timer用于实现挂钟

你好,
我正在实现一个智能手表挂钟,我的设备是DA14585 SDK 6.4.2。

你能回答我的问题吗?非常感谢。

1.app_easy_timer适合实现挂钟吗?这是准确的吗?我知道我不能使用Systick定时器,因为是睡眠模式。
2.如果计时器过期,系统正在休眠,系统是否会为计时器而唤醒,并实现回调函数,直到函数完成?
3.DA14585中没有硬件RTC,所以我必须写一些日期和时间的代码,对吗?
4.我创建了一个app_easy_timersystem_init ()函数arch_main.c,它不起作用。
但是,我将这一行移动到schedule_while_ble_on()函数之后,它工作了。为什么?

int主要(空白)

sleep_mode_t sleep_mode;
init_retention_mode ();
/ /全局初始化
system_init ();
user_wall_clock_timer = app_easy_timer((USER_WALL_CLOCK_TRIGGER_FREQ * 100), user_wall_clock_cb);/ /它不起作用
Uint8_t a = 0;
而(1)

{做
//调度所有挂起的事件
schedule_while_ble_on ();
如果(a = = 0)

user_wall_clock_timer = app_easy_timer((USER_WALL_CLOCK_TRIGGER_FREQ * 100), user_wall_clock_cb);/ /它的工作原理
+ +;

....

设备:
MT_dialog
离线
最后看到:三个月三个星期前
工作人员
加入:2015-06-08 34
嗨stanley_yeh,

嗨stanley_yeh,

1.,取决于你将允许时钟漂移,我们没有任何估计在585年如何适当的振荡器将为了实现清债信托公司,但我不认为这将是一个可行的解决方案,因为我认为你会发现漂移。

2.是的,系统将从计时器过期时醒来,并将保持清醒,只要保持设备忙碌,如果它到达主while循环,并通过睡眠检查,然后设备将回到睡眠。

3.不,在585上没有RTC h/w,是的,如果你想这样做,你将不得不使用软件和定时器,但我再次认为在585上的实现将不足以提供一个可靠的时钟。

4.在system_init()之后,设备将重置堆栈以及迄今为止发送到堆栈的所有消息,所以,这就是为什么你不能在这一点上设置计时器的原因。所以在执行reset命令之后,您可以正确地设置您的计时器。

由于MT_dialog

stanley_yeh
离线
最后看到:2年1周前
加入:2016-12-23 06:52
嗨MT_dialog,

嗨MT_dialog,
我从你身上学到了很多东西。非常感谢。