Здравствуйте, уважаемые! Делаю простенькое зарядное устройство на mega16, пишу в CVAVR, смотрю в Протеусе, до железа еще не дошел, столкнулся с небольшой проблемой. Настраиваю компаратор: "+" - внутреннее опорное (1,23 В, кажется), "-" - вход AIN1. При симуляции AIN изменяю от 0 до 5В, ACO при этом все время 0 и не изменяется. Если настраиваю АЦП на работу с внутренней опорой - то компаратор начинает работать, только при этом опорное, судя по всему, ок.2,4 В, почему-то. Но мне в принципе все равно, 1,23 или 2,4, главное, чтоб АЦП работал от внешней опоры, а компаратор - от внутренней.
#include <mega16.h>
void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
MCUCSR=0x00;
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: On
// The Analog Comparator's positive input is
// connected to the Bandgap Voltage Reference
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x40;
SFIOR=0x00;
while (1)
{
};
}