同时使用定时器时,相互会影响吗?

[复制链接]
 楼主| jxr0345 发表于 2012-7-3 21:30 | 显示全部楼层 |阅读模式
在一程序中,如果两个定时器同时使用,并且运算于微秒级时,它们的精度是否有影响?它们是否对程序中其它的循环定时有较大影响呢?

实际结果是感觉很有影响,外部的循环定时误差大得无法使用了。

请高手指点!!谢谢。
NE5532 发表于 2012-7-3 22:34 | 显示全部楼层
那是因为中断处理时间的问题,先研究是不是需要这么准确的时间,再想办法来做。
 楼主| jxr0345 发表于 2012-7-4 18:29 | 显示全部楼层
几个不同波形的输出频率都比较高,不用定时器的话要根本不好控制频率。
老鱼探戈 发表于 2012-7-4 18:46 | 显示全部楼层
本帖最后由 老鱼探戈 于 2012-7-4 18:50 编辑

2L的意思是中断从入栈到出栈的时间。

你的频率输出有多高?
俺做过10us和15us的同时中断,其中产生的影响可以忽略不计,指令周期为0.5us.
 楼主| jxr0345 发表于 2012-7-4 19:27 | 显示全部楼层
频率不算太高,一个20k左右,一个10k左右,但另有循环定时,受定时器影响误差太大。
sedatefire 发表于 2012-7-4 20:48 | 显示全部楼层
中断时间=mcu响应时间+入栈时间+中断处理时间+出栈时间
sedatefire 发表于 2012-7-4 20:51 | 显示全部楼层
循环定时这个可以优化的
只要效果达到即可

if (cnt10ms >= 10)
{
   cnt10ms -= 10;
}
类似的思想
sedatefire 发表于 2012-7-4 20:53 | 显示全部楼层
外部循环的程序,一般做的是数据处理工作,对时间响应不敏感的
另外,你要考虑减少中断处理的任务。置标志位或者丢出事件等等
lb19880072 发表于 2012-7-4 21:07 | 显示全部楼层
频率不算太高,一个20k左右,一个10k左右,但另有循环定时,受定时器影响误差太大。
jxr0345 发表于 2012-7-4 19:27

另有延时也可以用定时器做啊,在定时器里加一个标志位就有了,不过要算上中断相关处理时间
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

17

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部