ATmega8的模擬比較器的總結(jié)
1、當ACBG=1時,使用內(nèi)部能隙基準源(1.23V)做AIN0端的電壓,ACME=0、ADEN=0時外界電壓作AIN1端的電壓。當外界電壓小于1.23V時,紅燈亮。否則,綠燈亮。模擬比較器段初始化程序設計:
void ac_init(void)
{
//{{WIZARD_MAP(Analog Comparator)
// Interrupt on Output Toggle
// Bandgap Enabled
// Multiplexer Disabled
ACSR = 0x48;
SFIOR |= 0x0;
//}}WIZARD_MAP(Analog Comparator)
}
ISR(SIG_COMPARATOR)
{
// TODO: Add your code here
if(ACSR _BV(ACO))
{
SET_RED_LED;
CLR_GRE_LED;
}
else
{
CLR_RED_LED;
SET_GRE_LED;
}
}
2、不使用內(nèi)部的能隙基準源,模擬比較器的AIN0、AIN1兩端口都直接接外界的電壓,直接比較外部的兩個電壓的狀況。當AIN0AIN1時,綠燈亮。否則,紅燈亮。模擬比較器段初始化程序設計:
void ac_init(void)
{
//{{WIZARD_MAP(Analog Comparator)
// Interrupt on Output Toggle
// Bandgap Enabled
// Multiplexer Disabled
ACSR = 0x08;
SFIOR |= 0x0;
//}}WIZARD_MAP(Analog Comparator)
}
ISR(SIG_COMPARATOR)
{
// TODO: Add your code here
if(ACSR _BV(ACO))
{
SET_RED_LED;
CLR_GRE_LED;
}
else
{
CLR_RED_LED;
SET_GRE_LED;
}
}
3、模擬比較器的AIN0端接外部電壓,AIN1端接模數(shù)轉(zhuǎn)換的多路輸入端,對兩端口的狀態(tài)的比較。模擬比較器負極輸入使用參考表:
當AIN0AIN1時,綠燈亮。否則,紅燈亮。模擬比較器段初始化程序設計:
void ac_init(void)
{
//{{WIZARD_MAP(Analog Comparator)
// Interrupt on Output Toggle
// Bandgap Enabled
// Multiplexer Disabled
ACSR = 0x08;
SFIOR |= 0x08;
ADCSRA=0x00;
ADMUX=0x00;
//}}WIZARD_MAP(Analog Comparator)
}
ISR(SIG_COMPARATOR)
{
// TODO: Add your code here
if(ACSR _BV(ACO))
{
SET_RED_LED;
CLR_GRE_LED;
}
else
{
CLR_RED_LED;
SET_GRE_LED;
}
}
評論