当前文章: 首页 >> 编程开发 >> MTK >> MTK功能机精确定时器kal_set_timer使用
聚划算
«   2019年11月   »
123
45678910
11121314151617
18192021222324
252627282930
云盾证书
网站分类
    海外云服务器CPS_轻量拓展全民云计算企业云服务器云盾证书
标签列表
最近发表

MTK功能机精确定时器kal_set_timer使用

广告位250x250

在MTK功能机中最常用的就以下几个定时器:

UI定时器:

只要屏幕亮的时候有效,而且只有一个定时器,因为同时的屏幕ID只有一个(不精确)。

void UI_start_timer(S32 count, FuncPtr callback)


MMI定时器:

这个MMI层的定时器,在回调中的进程是MMI层,运行的机制是只执行一次,需要重复执行,需要在回调函数的内部再次执行(不精确)。

注:最好使用前调用StopTimer,不然可能会导致异常重启。

void StartTimer(U16 timerid, U32 delay, FuncPtr funcPtr)


精确定时器:

以上两种定时器一般不怎么确认,如果需要使用很精确的定时器,可以有两种方案,1是使用task模式,2是使用kal_set_timer定时器;

这里主要说的是kal_set_timer方案;

//创建定时器
kal_timerid kal_create_timer(kal_char* timer_name_ptr);

//启动定时器
void kal_set_timer(kal_timerid timer_id, kal_timer_func_ptr handler_func_ptr, void* handler_param_ptr, kal_uint32 delay, kal_uint32 reschedule_time);
//回调函数
typedef void (*kal_timer_func_ptr)(void *param_ptr);
//ms换算,参数delay和reschedule_time
kal_uint32 kal_milli_secs_to_ticks(kal_uint32 milli_secs);

//取消定时器
void kal_cancel_timer(kal_timerid timer_id);

这个精确定时器与前面的定时不同,需要先创建,创建时的参数名称只要不相同就可以区分不同定时器,启动定时器后这个定时器的回调函数可以设置一直重复调用(reschedule_time!=0),直到取消定时器。



声明:本站原创文章,转载、复制、使用等请注明出处。
标题MTK功能机精确定时器kal_set_timer使用
作者jues
地址: http://blog.jues.org.cn/post/mtk-gong-neng-ji-jing-que-ding-shi-qi-kalsettimer-shi-yong.html
1楼
  • 访客 2019-05-04 11:41:05  回复
  • 站主你好,我看了你对MTK功能机的介绍,我想请问,关于MTK modern里消息的传递有了解么?
    • jues 2019-05-21 16:41:10  回复
    • 你是指L4层吧,网上应该很多的。

发表评论:

Powered By Z-BlogPHP 1.5.2 Zero Powered By Z-BlogPHP © 2018 jues博客 Copyright Your WebSite.Some Rights Reserved.联系站长 Themes by jues