первое. у вас остались REFSы а единицах. Должны быть в нулях.
И вот это void ADC_Result() где вызывается? Где результат нужен?
Код: Выделить всё
main()//Îñíîâíàÿ ôóíêöèÿ ïðîãðàììû
{
__enable_interrupt();//Âêëþ÷àåì ãëîáàëüíî ïðåðûâàíèÿ
adc_init();
for(;;)
{
Start_ADC_Convert();
--- тут вписать вывод переменной voltage.
}
// дальще как было...
Код: Выделить всё
#pragma vector =ADC_vect//Ïðåðûâàíèå ïî çàâåðøåíèþ ïðåîáðàçîâàíèÿ íàïðÿæåíèÿ
__interrupt void ADC_vector(void)
{
voltage=ADC;//Äëÿ áîëüøåé òî÷íîñòè íàêàïëèâàåì èçìåðåíèÿ
// count_adc++;//Ñäåëàíî åùå îäíî ïðåîáðàçîâàíèå
}
Код: Выделить всё
unsigned short voltage_in=0,voltage=0;
volatile unsigned char count_adc;//Êîëè÷åñòâî îòñ÷åòîâ äëÿ ÀÖÏ
void adc_init()//Ôóíêöèÿ èíèöèàëèçàöèè ÀÖÏ
{
CB(DDR_ADC,PIN_ADC);
ADMUX|=(0<<MUX0)|(0<<MUX1)|(0<<MUX2)|(0<<MUX3)|(0<<MUX4)|(0<<REFS0)|(0<<REFS1)|(0<<ADLAR);
SFIOR|=(0<<ADTS2)|(0<<ADTS1)|(0<<ADTS0);
ADCSRA|=(1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADIF)|(1<<ADPS2)|(0<<ADPS1)|(1<<ADPS0)|(0<<ADATE);
// ADCSRA|=(1<<ADSC);//Äåëàåì ïåðâûé îòñ÷åò
}
void Start_ADC_Convert()
{
ADCSRA|=(1<<ADSC);
}
void ADC_Result()
{
if(count_adc==5)//Åñëè ñäåëàëè 5 çàìåðîâ íàïðÿæåíèÿ
{
voltage_in=voltage;
count_adc=0;//Îáíóëÿåì êîë-âî çàìåðîâ
voltage=0;//Îáíóëÿåì ïåðåìåííóþ äëÿ ñóììèðîâàíèÿ
}
}
Код: Выделить всё
void tranceive_array_load()//Функция отправки показаний датчиков и приема команд
{
ADC_Result();
Start_ADC_Convert();
бла-бла-бла.
}
во второй строчке написано
Код: Выделить всё
//ион - напряжение питания, выравнивание влево, нулевой канал
ADMUX = (0<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX3)|(0<<MUX2)|(0<<MUX1)|(0<<MUX0);
и там же по ссылки схема подключенияРегистр ADMUX
Модулю АЦП для работы нужен источник опорного напряжения (ИОН). За выбор ИОНа отвечают биты REFS1, REFS0. В нашем случае опорное напряжение это напряжение питания (именно поэтому мы завели вывод AVcc на +5В) поэтому REFS1 - 0, REFS0 - 1
а чем напряжение меняется на ножке МК? резистор переменный?Pika4u писал(а):ADC_Result вызывается вREFS в единицы я поставил,чтобы посмотреть,что будет при внутреннем ИОН,ничего не изменилось.Код: Выделить всё
void tranceive_array_load()//Функция отправки показаний датчиков и приема команд { ADC_Result(); Start_ADC_Convert(); бла-бла-бла. }
Там так не написано. Слово capacitor ниче не говорит? Переведите что-ли гуглом.AaNnDdRrEeYy писал(а): во второй строчке написано
для того что бы источник опорного напряжения брался с ноги AREF. выстави REFS1 = 0 а REFS0 =1
Тут всё правильно. Но у ТС совершенно не так подключено.AaNnDdRrEeYy писал(а): вот еще цитата с этого сайтаСпойлер
Регистр ADMUX
Модулю АЦП для работы нужен источник опорного напряжения (ИОН). За выбор ИОНа отвечают биты REFS1, REFS0. В нашем случае опорное напряжение это напряжение питания (именно поэтому мы завели вывод AVcc на +5В) поэтому REFS1 - 0, REFS0 - 1
и там же по ссылки схема подключения
У меня AREF и AVCC заведены на +5,конденсатор стоит вплотную к AREF.__Alexander писал(а):Там так не написано. Слово capacitor ниче не говорит? Переведите что-ли гуглом.AaNnDdRrEeYy писал(а): во второй строчке написано
для того что бы источник опорного напряжения брался с ноги AREF. выстави REFS1 = 0 а REFS0 =1
Тут всё правильно. Но у ТС совершенно не так подключено.AaNnDdRrEeYy писал(а): вот еще цитата с этого сайтаСпойлер
Регистр ADMUX
Модулю АЦП для работы нужен источник опорного напряжения (ИОН). За выбор ИОНа отвечают биты REFS1, REFS0. В нашем случае опорное напряжение это напряжение питания (именно поэтому мы завели вывод AVcc на +5В) поэтому REFS1 - 0, REFS0 - 1
и там же по ссылки схема подключения
я знаю. читать тему с первого сообщения не разучился. )Pika4u писал(а): У меня AREF и AVCC заведены на +5,конденсатор стоит вплотную к AREF.
так мы про биты выясняли а не про то как там ТС спаял. Кстати без конденсатора у меня тоже нормально работает.__Alexander писал(а): Там так не написано. Слово capacitor ниче не говорит? Переведите что-ли гуглом.
Тут всё правильно. Но у ТС совершенно не так подключено.
Ну так вы про биты неправильно сказали. А то, что у вас там работает без чего либо... это оставьте себе и не советуйте делать так-же.AaNnDdRrEeYy писал(а): так мы про биты выясняли а не про то как там ТС спаял. Кстати без конденсатора у меня тоже нормально работает.