2440硬件定时器是否准确?

G00GleLIN 2010-03-23 09:47:19
本人使用三星2440平台,wince5.0
使用中发现硬件定时器采集不准确,1秒钟采集256次,会出现次数少了,然后又会突然多了的情况。
无论是采用内部时钟还是外部时钟,(外部时钟情况好像好一点),都是不准。
我的操作是用硬件定时器计时,计时到0,产生中断一次,如此反复。
请问大家有没有发现这个问题?或者有什么好的解决办法,谢谢!
...全文
110 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
G00GleLIN 2010-03-23
  • 打赏
  • 举报
回复
现在还有个很奇怪的问题,我采用外部晶振32.768KHZ的,是有源晶振,很稳定。
然后我用了timer2
每秒采集256次,
则TCNTB2 = 32768/256
TCMPB2 = 0
奇怪的是采集出来只有190个点,这个是为什么呢?
domworldjohn 2010-03-23
  • 打赏
  • 举报
回复
如果采用系统定时器一般定时都是不会那么准确的,一般都需要使用独立的定时器,之后在驱动里面做。定时器中断之后立刻处理
博说医械研发 2010-03-23
  • 打赏
  • 举报
回复
如果是这样估计是因为设优先级太高后会频繁的执行你的定时器中断,导致其它的线程跑不动,而当你不设置优先级的时候其它线程能正常跑就说明你的定时器中断不能得到及时的处理,每秒产生的次数偏差也就正常了。
定时器中断线程是否执行时间太长了?
G00GleLIN 2010-03-23
  • 打赏
  • 举报
回复
优先级没设置,发现设置优先级后,其他线程都要跑不动了。很卡
博说医械研发 2010-03-23
  • 打赏
  • 举报
回复
这个定时器中断的线程优先级是多少?是否因为你的优先级太低导致这样的问题,建议把优先级设高一些试试,且中断的处理函数尽量的短,不要占用过多的时间。
G00GleLIN 2010-03-23
  • 打赏
  • 举报
回复
问题找到,解决,上面提到的其实190个点是我发生器的问题,才误认为少点了。定时器还是很准的。
谢谢上面两位,结贴!

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧