微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AVR模拟比较器使用范例

AVR模拟比较器使用范例

时间:11-10 来源:互联网 点击:

Bit 3 – ACIE: 模拟比较器中断使能

当ACIE 位被置"1” 且状态寄存器中的全局中断标志I 也被置位时,模拟比较器中断被激活。

否则中断被禁止。

Bit2 – ACIC: 模拟比较器输入捕捉使能

这个功能用于检测一些微弱的触发信号源,节省一个外部运放。

ACIC置位后允许通过模拟比较器来触发T/C1 的输入捕捉功能。

此时比较器的输出被直接连接到输入捕捉的前端逻辑,从而使得比较器可以利用T/C1 输入捕捉中断逻辑的噪声抑制器及触发沿选择功能。

为了使比较器可以触发T/C1 的输入捕捉中断,定时器中断屏蔽寄存器TIMSK 的TICIE1 必须置位。

ACIC 为"0” 时模拟比较器及输入捕捉功能之间没有任何联系。

Bits 1, 0 – ACIS1, ACIS0: 模拟比较器中断模式选择

这两位确定触发模拟比较器中断的事件。

ACIS1 ACIS0 中断模式

0 0 比较器输出变化即可触发中断

0 1 保留

1 0 比较器输出的下降沿产生中断

1 1 比较器输出的上升沿产生中断

需要改变ACIS1/ACIS0 时,必须清零ACSR 寄存器的中断使能位来禁止模拟比较器中断。否则有可能在改变这两位时产生中断。

*/

ACSR=(1

// 使能模拟比较器中断,比较器输出变化即可触发中断,AIN0为正输入端,AIN1为负输入端。

sei(); //使能全局中断

while (1); //主程序没有任务。任何情况都必须是一个无限循环。

}

/*

程序测试:

两个电位器,一端接VCC,一端接地,构成电位器分压电路。

AIN0和AIN1都分别接到电位器的中心抽头。

PBO输出串电阻驱动LED,高电平有效。

然后分别旋转电位器,增减抽头的电压,将会发现PB0的输出(LED0)会根据 AIN0/AIN1的电压关系变动。

由于电源纹波,IO电流及外界干扰的影响,当电压差接近0V时,模拟比较器会产生临界抖动,AIN0/AIN1对地并上小电容可以改善这种情况。

在使用AVR51实验板时,由于只有一个电位器,需要变通:

1、可以使能ACBG,利用1.23V内部能隙基准源代替AIN0作模拟比较器的正输入端。

ACSR=(1

2、可以使能ADC的内部2.56V电压基准,然后把AIN0或AIN1连接到pin32 AREF脚。

ADCSRA=(1< //需要打开ADC

ADMUX=(1

*/

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top