打印

请教2812的脉冲捕获问题,急,请高手指点!

[复制链接]
3129|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
taikonaut|  楼主 | 2007-5-31 09:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我采用信号发生器输出到CAP1上,将脉冲捕获的定时器128分频,此时可捕获的脉冲最大间隔应是50ms左右,没有超限。我开始是在中断中每次将定时器清零,

我现在修改了中断程序,没有在中断程序中将定时器清零,我觉得这是不准确的,应该通过两次捕获的差值来计算,但遇到了,两个新问题,
1。定时器是选择连续递增模式,到定时周期时自动清零重新开始记数,并产生周期中断标志,然后我在程序中判断标志为,如果有则用定时周期,减去前一次捕获的值,再加上新捕获的值,这就得到了两个脉冲之间的定时值,假如我将定时周期设我60000,则与定时周期最接近的脉冲应该五万多,但在线观察,有时减去的前一次的值很小,而且是已经越过周期定时点,重新开始记数的值
2 将一恒定信号加入后,定期会出现CAPFIFO的状态位为11的情况,而大多数的情况是为10
当出现为11是,FIFO的两层堆栈值竟然相等!这是怎么回事?

我的测试程序很短,主程序就是一个for循环,内部没有代码,然后就是中断处理程序,我在中断处理中试了三种读取CAP1FIFO堆栈的值,一是每个中断只读一个顶层的值,而是连续两次读取顶层堆栈的值,三是先读底层,然后读顶层,第二种和第三种应是一样的,这些测试,都有两次值相等的情况,真郁闷!

多谢高手指点!谢谢! 

相关帖子

沙发
ertuo104| | 2007-5-31 19:01 | 只看该作者

ddffffffffffffffffffffff

fddddddddfffffafddddddddddddddddd

使用特权

评论回复
板凳
hngchp| | 2008-3-28 08:50 | 只看该作者

问题解决了吗

我也遇到和你一样的问题,如果解决了,请分享一下

使用特权

评论回复
地板
玻璃之城| | 2011-11-2 16:57 | 只看该作者
1# taikonaut
你好啊,看到你的帖子,请问你的问题解决了吗?

使用特权

评论回复
5
jesuswd| | 2011-12-23 17:00 | 只看该作者
还是说的不太清楚。

使用特权

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

本版积分规则

2

主题

2

帖子

0

粉丝