打印

定时不准的问题,请教各位大人!!感谢!!

[复制链接]
1137|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liyq|  楼主 | 2007-1-8 21:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 我现在的单片机c程序中,有多个周期定时的任务。现在是这样做的,用timer0做了一个中断,1ms进一次中断,对g_t_timer++,g_t_timer是unsigned int型。 在主程序中,每个周期任务的开始时间timer=g_t_timer; 如果,g_t_timer-timer>任务周期,那么就开始执行周期性的任务。这个在多数情况下没问题,但是如果周期特别长时,如30s的时候,定时就不准了。怀疑是减的时候出了问题,比如溢出等等。请问存在这种可能吗?现在可以确定的是,1ms进中断是没问题的。我用的单片机是PIC18F系列的。另外,多个定时器之前切换会存在问题,或者那位大侠有更好的方法解决这类定时问题?多谢了!!

相关帖子

沙发
liyq|  楼主 | 2007-1-9 10:52 | 只看该作者

顶起来

使用特权

评论回复
板凳
bluestdzp| | 2007-1-9 10:54 | 只看该作者

建议用实时时钟做

使用特权

评论回复
地板
mikesullen| | 2007-1-9 11:03 | 只看该作者

可能是累积误差

你的1ms中断,进入需要时间,出来也需要时间,这是误差,如果累积可能就会有更大的误差了。。。
还有你的中断处理上,有没有可能会被其它的中断占用时间导致定时中断不能及时进入。。。
其它的问题,就是你的计数器g_t_timer有没有可能会在其它不预知的地方被修改了。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝