打印

用定时器输出200-1000HZ的方波时有波动

[复制链接]
3723|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
westzg|  楼主 | 2008-12-8 19:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用PIC18F2420,4M的晶振,T1定时器高中断输出范围为200-1000HZ的方波,高中断我就用了T1专门做这个频率输出没有做其他的事情。我用定时器输出频率的时候,比如说我让他固定输出500HZ的时候,每隔1~3秒他会蹦出个505Hz出来,然后马上又变回500HZ,在示波器上观察到的是那一瞬间周期少了20US,
下面是我输出频率的计算公式
频率要求是x=0时输出200HZ,x=400时输出1000HZ,x是整数
占空比为50%,半个周期的时间是
T/2=1000000/(2x+200)/2,故
y=65535-(25000/(x+100))*10+14;   //14是对周期的修正,考虑到从主程序跳转到中断还需要时间。
     t1l=y%256;
     t1h=y/256;


然后我用PWM做了一路频率输出,一样有波动,示波器观察是偶尔周期多出20US

当频率500以上的时候,波动比较大,不满足要求了,有什么好的方法了?频率波动2以内可以接受吧

相关帖子

沙发
ayb_ice| | 2008-12-8 20:42 | 只看该作者

可能是每个周期要处理的不一样多

设法让它一样

使用特权

评论回复
板凳
westzg|  楼主 | 2008-12-9 12:42 | 只看该作者

迷惑

二楼,你这么说我很迷惑的。

使用特权

评论回复
地板
hab2000| | 2008-12-9 12:57 | 只看该作者

这种情形,一般要主动贴出源程序!

这里不乏高手,不给出程序高手也只能瞎蒙!
蒙一个:多半出在定时器赋值语句!

使用特权

评论回复
5
工控秀才| | 2008-12-9 15:25 | 只看该作者

你的PIC还没有中断优先级吧

再强的中断也要按顺序来处理,考虑一下同时有几个中断发生时,你可以怎么处理呢,当然是束手无策了,一般的MCU都有这个问题,所以51提出了中断优先级.要想一点都不抖动,可以拿我的IC去扩展,只要晶体不抖动,我的波形就不会抖动,这就是多核心的优势.

使用特权

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

本版积分规则

8

主题

34

帖子

0

粉丝