打印
[AVR单片机]

AVR 模拟比较器响应速度问题!!

[复制链接]
2945|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
457878|  楼主 | 2010-2-23 11:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
AVR 模拟比较器响应速度问题!!
设置为双边沿触发中断后,在中断中添加如下代码:
if ((ACSR&(1<<ACO))==0) //检测ACO
{
  LedY_On();
}
else
{
  LedY_Off();  //对应PIN 高电平
}
发现Led端波形不能跟随比较器输入的波形(最窄脉宽100us,数据长度2.5ms左右)
而是3.4ms左右的高电平(对应PIN 高电平)

通过该测试判断:AVR比较器存在严重的输出延迟,延迟时间在1ms左右?

相关帖子

沙发
457878|  楼主 | 2010-2-23 11:34 | 只看该作者
//---------------------------------------------
void   comparator_init(void)
{
        ACSR&=~(1<<ACIE);        //禁止中断
        ACSR&=~(1<<ACD);        //0使能比较器(1禁止比较器)
        DDRB&=~(1<<DDB2);        //IO方向输入
        DDRB&=~(1<<DDB3);        //IO方向输入
//        ACSR|=(1<<ACIS0);        //上升沿中断(00 边沿触发,01保留,10下降沿,11上升沿)
//        ACSR|=(1<<ACIS1);        //上升沿中断(00 边沿触发,01保留,10下降沿,11上升沿)
        ACSR&=~(1<<ACIS0);        //上升沿中断(00 边沿触发,01保留,10下降沿,11上升沿)
        ACSR&=~(1<<ACIS1);        //上升沿中断(00 边沿触发,01保留,10下降沿,11上升沿)
        ACSR|=(1<<ACI);                //清中断标志
        ACSR=(1<<ACIE);                //使能中断
}

使用特权

评论回复
板凳
wangwo| | 2010-2-23 12:33 | 只看该作者
延迟真有这么长吗?

使用特权

评论回复
地板
457878|  楼主 | 2010-2-24 09:20 | 只看该作者
真有这么长!

使用特权

评论回复
5
457878|  楼主 | 2010-2-24 11:49 | 只看该作者
查看手册:tACID = 500 ns (at VCC = 4.0V),这么说一定是我这边的问题了

哎,示波器,仿真器都被人拿走了.....

看了下电路,这个地方非常可疑RC =10K * 0.1u =1ms ,不过应该不是这个问题,因为,在电容两端阻抗很低,电容两端的波形非常陡峭,没有丝毫延迟。
multisim仿真2个点波形也都一样,但还是有点怕multisim出错,因此发帖询问,这样的电路会在R1后面造成延迟吗?

1ms.png (9.97 KB )

1ms.png

使用特权

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

本版积分规则

269

主题

883

帖子

3

粉丝