[AVR单片机] AVR 模拟比较器响应速度问题!!

[复制链接]
3499|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 | 显示全部楼层
真有这么长!
 楼主| 457878 发表于 2010-2-24 11:49 | 显示全部楼层
查看手册:tACID = 500 ns (at VCC = 4.0V),这么说一定是我这边的问题了

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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

270

主题

885

帖子

3

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