打印

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

[复制链接]
1865|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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.

使用特权

评论回复
5
jxr0345|  楼主 | 2012-7-4 19:27 | 只看该作者
频率不算太高,一个20k左右,一个10k左右,但另有循环定时,受定时器影响误差太大。

使用特权

评论回复
6
sedatefire| | 2012-7-4 20:48 | 只看该作者
中断时间=mcu响应时间+入栈时间+中断处理时间+出栈时间

使用特权

评论回复
7
sedatefire| | 2012-7-4 20:51 | 只看该作者
循环定时这个可以优化的
只要效果达到即可

if (cnt10ms >= 10)
{
   cnt10ms -= 10;
}
类似的思想

使用特权

评论回复
8
sedatefire| | 2012-7-4 20:53 | 只看该作者
外部循环的程序,一般做的是数据处理工作,对时间响应不敏感的
另外,你要考虑减少中断处理的任务。置标志位或者丢出事件等等

使用特权

评论回复
9
lb19880072| | 2012-7-4 21:07 | 只看该作者
频率不算太高,一个20k左右,一个10k左右,但另有循环定时,受定时器影响误差太大。
jxr0345 发表于 2012-7-4 19:27

另有延时也可以用定时器做啊,在定时器里加一个标志位就有了,不过要算上中断相关处理时间

使用特权

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

本版积分规则

0

主题

17

帖子

1

粉丝