打印
[AVR单片机]

请教ATMEGA169的PWM模式的问题,请高手指点!

[复制链接]
2127|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yaguifang|  楼主 | 2008-12-29 10:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用ATMEGA169做一个控制,其中一个功能是完成交流调速,用INT0检测过零,定时器1调速,时钟14.7456M,怎么定时器1的定时误差达到2ms?比定时器1高的中断就只使用了PCINT和INT0来做过零同步,PCINT只是按键输入,平常根本不按动,INT0用的是边沿触发,同样的算法和功能在ATMEGA16上多启用一个INT1都非常正常,在ATMEGA169上就老是不对,时正常时不正常,而且时钟频率倒是很稳,可幅度只有1.2-1.4V,请用过atmega169的朋友指点指点,我快被他搞死了,为啥子同样一串脉冲,M16定时就很准,M169误差就那么大?我以前用过很多AVR做项目,第一次遇到这个问题,从M16改为M169只是因为引脚不够,没想到改成M169改出这么多问题,真是郁闷,请高手指点!

相关帖子

沙发
ntzwq| | 2008-12-29 11:03 | 只看该作者

这么大的误差,是否你的分频比等设置不正确.

使用特权

评论回复
板凳
yaguifang|  楼主 | 2008-12-29 11:26 | 只看该作者

RE:

谢谢,这个我已经尝试过了,系统有一个1/8分频和全速的熔丝,我用的是全速,外部晶体,定时器1我选择的是系统时钟8分频,如果是误差应该都是一样的,每个脉冲都是误差那么多,问题是我定时10Ms,第一个脉冲是10MS,第二个脉冲可能是8ms,第三个脉冲可能是9MS,低四个有可能正常,反正就是随机的,你不知道是那个脉冲他发出来不是10MS,我以为是时钟问题,用外部直接加时钟也一样,我甚至关闭了串口发送,运行后没有任何一个地方会关系统中断,还是那样,除非不加任何东西,只让他跑INT0和定时器1的程序,他就正常,而同样的代码在M16上很正常。

使用特权

评论回复
地板
aweyfan| | 2008-12-29 11:34 | 只看该作者

用ctc模式

使用特权

评论回复
5
xwj| | 2008-12-29 11:38 | 只看该作者

肯定有什么地方不对,比如比较门限

使用特权

评论回复
6
avr| | 2008-12-30 22:47 | 只看该作者

对于定时器的精度是可以计算出误差范围来的

对于定时器的精度是可以计算出误差范围来的,如果实际中误差远越超计算精度,一般是设置中有什么问题(如FUSE、时钟分频等),另外应该好好检查一下初始化代码,最后要检查有没有地方关中断或中断服务程序执行占机时过长。

使用特权

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

本版积分规则

2

主题

4

帖子

0

粉丝