智能车制作

标题: 问个问题,PIT计时不准 [打印本页]

作者: 、痕迹    时间: 2014-12-10 15:12
标题: 问个问题,PIT计时不准
我初始化了两个PIT,分别用来做CCD的Ms中断,和自己用来计算程序执行时间的100Us中断,但是发现20Ms的Flag每隔18ms就立起来了...

[attach]72456[/attach]
这是Ms的PIT初始化
[attach]72457[/attach]
CCD的中断服务函数

[attach]72458[/attach]

这是100Us的初始化..和中断服务函数

[attach]72459[/attach]

主函数里面是这样


[attach]72462[/attach]
[attach]72461[/attach]
[attach]72460[/attach]
然后连续几次计数值都不一样........

虽然问题不是很大...但是怎么会出现这种情况..........


作者: Quixote    时间: 2014-12-10 15:25
本帖最后由 Quixote 于 2014-12-10 15:26 编辑

问题主要在于启动顺序与接收的时间情况。因为PIT是外部硬件。还有你单片机每次运行也未必一定每个步骤时间都一样。
作者: 、痕迹    时间: 2014-12-10 15:38
Quixote 发表于 2014-12-10 15:25
问题主要在于启动顺序与接收的时间情况。因为PIT是外部硬件。还有你单片机每次运行也未必一定每个步骤时间都 ...

我大概明白了....每次到Breakpoint的时候,单片机初始停止状态,但是PIT0和PIT1中断都已经触发了..重新开始运行的时候,Ms计数一开始就为1,Us计数也为1。所以准确的计数应该是191。还有其他未考虑到的延迟,刚刚好。。谢了!我开始根本没想到单片机反馈到k60的延迟

作者: 43380249    时间: 2014-12-10 22:17
一楼说的对,大神啊




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2