智能车制作
标题:
问个问题,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