找回密码
 注册
搜索
查看: 4448|回复: 11

[讨论] GPTI_StartItem和StartTimer有什么区别

[复制链接]
发表于 2010-8-6 13:21:39 | 显示全部楼层 |阅读模式
环境:
MTK6225 0852, BCT3286

使用同样的逻辑控制,一个是用StartTimer实现的0.5秒的循环控制灯板全亮和全暗,明显看到运行结果: 有时候时间控制不对,有时候亮1秒或者暗1秒

而用GPTI_StartItem替换StartTimer后一切就都正常的,测试长时间后没发现明暗不均的现象


高手能否解释一下这个原因?

多谢多谢
 楼主| 发表于 2010-8-10 11:38:30 | 显示全部楼层
多谢多谢
点评回复

使用道具 举报

发表于 2010-8-9 17:40:16 | 显示全部楼层
学习+赚分
点评回复

使用道具 举报

发表于 2010-8-7 18:28:36 | 显示全部楼层
楼上的说的很好,^_^
点评回复

使用道具 举报

发表于 2010-8-7 09:05:03 | 显示全部楼层
GPTI_StartItem要精准很多,但是只能提供总数不超过32个GPTI,所以使用时需要注意成对申请和释放GPTI,否则可能会出现ASSERT
点评回复

使用道具 举报

发表于 2010-8-7 01:08:33 | 显示全部楼层
GPTI_StartItem更接近硬件timer
StartTimer完全是软件模拟的,精确度差
StartNoalignTimer精确度会比StartTimer要好
点评回复

使用道具 举报

 楼主| 发表于 2010-8-13 14:54:58 | 显示全部楼层
以下是引用hunterpro在2010-8-11 23:27:58的发言:
即使用start timer精度也不会差这么多的,应该你用的是align的timer,这个timer在系统退出sleep mode的时候才会去响应,设置成unalign的timer就好了。
GPTI用的是GPT timer。这个是用HISR的方式去响应。
start timer底层是TDMA timer,上层经过Nucleus和KAL封装了一下,最后是用响应消息的方式去响应。



如何设置align的timer或者unalign的timer
点评回复

使用道具 举报

发表于 2010-8-12 19:17:40 | 显示全部楼层
以下是引用M45ter在2010-8-10 17:58:22的发言:
gui_start_timer
gui_cancle_timer
该怎么用呢?举个例子?
[em03]


gui_start_timer(100, mmi_gx_copter_cyclic_timer);
gui_cancel_timer(mmi_gx_copter_cyclic_timer);

它最终也是会调用StartTimer的。只不过它不用申请Timer ID,循环使用了固定的Timer ID。
点评回复

使用道具 举报

发表于 2010-8-11 23:27:58 | 显示全部楼层
即使用start timer精度也不会差这么多的,应该你用的是align的timer,这个timer在系统退出sleep mode的时候才会去响应,设置成unalign的timer就好了。
GPTI用的是GPT timer。这个是用HISR的方式去响应。
start timer底层是TDMA timer,上层经过Nucleus和KAL封装了一下,最后是用响应消息的方式去响应。
点评回复

使用道具 举报

发表于 2010-8-10 17:58:22 | 显示全部楼层
gui_start_timer
gui_cancle_timer
该怎么用呢?举个例子?
[em03]
点评回复

使用道具 举报

发表于 2010-8-22 21:39:20 | 显示全部楼层
学习了。。
点评回复

使用道具 举报

发表于 2013-1-23 12:00:39 | 显示全部楼层
StartTimer中的超时时间是ms,还是4.615ms个单位?
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-5-16 16:00 , Processed in 0.050209 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表