Все, победил я этот код, теперь работает 2е шкалы :-)
CODE:#include <avr/io.h>
#include <util/delay.h>
int main (void)
{
DDRD = 0xFF;
PORTD = 0x00;
DDRB = 0xFF;
PORTB = 0x00;
DDRC = 0x00;
while(1)
{
unsigned int u, u_VCC;
ADCSRA|=(1<<ADEN) //Включение АЦП
|(1<<ADPS1)|(1<<ADPS0); // Предделитель преобразователя на 8
ADMUX=(0<<MUX0)|(0<<MUX1)|(0<<MUX2)|(0<<MUX3)//Вход PC0
|(1<<REFS0)|(0<<REFS1); //AVcc является опорным напряжением
ADCSRA |= (1 << ADSC); //Начинаем преобразование
while ((ADCSRA&(1 << ADIF))== 0); //Ждем флага окончания преобразования
u = (ADCL|ADCH << 8); // Считываем ADC
if (u > 128) //2V
{PORTD = (1 << PD0);}
else {PORTD &= ~(1 << PD0);}
if (u > 256) //4V
PORTD = (1 << PD0)|(1 << PD1);
if (u > 384) //6V
PORTD = (1 << PD0)|(1 << PD1)
|(1 << PD2);
if (u > 512) //8V
PORTD = (1 << PD0)|(1 << PD1)
|(1 << PD2)|(1 << PD3);
if (u > 639) //10V
PORTD = (1 << PD0)|(1 << PD1)
|(1 << PD2)|(1 << PD3)
|(1 << PD4);
if (u > 767) //12V
PORTD = (1 << PD0)|(1 << PD1)
|(1 << PD2)|(1 << PD3)
|(1 << PD4)|(1 << PD5);
if (u > 895) //14V
PORTD = (1 << PD0)|(1 << PD1)
|(1 << PD2)|(1 << PD3)
|(1 << PD4)|(1 << PD5)
|(1 << PD6);
if (u > 1020) //16V
PORTD = (1 << PD0)|(1 << PD1)
|(1 << PD2)|(1 << PD3)
|(1 << PD4)|(1 << PD5)
|(1 << PD6)|(1 << PD7);
_delay_ms(100);
ADMUX=(1<<MUX0)|(0<<MUX1)|(0<<MUX2)|(0<<MUX3)|(1<<REFS0)|(1<<REFS1);
ADCSRA |= (1 << ADSC); //Начинаем преобразование
while ((ADCSRA&(1 << ADIF))== 0); //Ждем флага окончания преобразования
u_VCC = (ADCL|ADCH << 8); // Считываем ADC
if (u_VCC < 893)
{PORTB = (1 << PB2);}
else {PORTB &= ~(1 << PB2);}
if (u_VCC > 893)
PORTB =(1 << PB1);
if (u_VCC > 1000)
PORTB = (1 << PB0);
_delay_ms(100);
}
}
проблема была здесь:
CODE:ADMUX=(1<<MUX0)|(0<<MUX1)|(0<<MUX2)|(0<<MUX3)|(1<<REFS0)|(1<<REFS1);
короче говоря, здесь:
CODE:ADMUX|=(0<<MUX0)|(0<<MUX1)|(0<<MUX2)|(1<<MUX3)//Вход PC1
|(1<<REFS0)|(1<<REFS1); //2,56В является опорным напряжением
я ссылался на не существующий выход :-)
Щас осталось присабачить L293D (чтоб зарядный ток пропускать на аккумулятор (сигнап на зарядку будет давать МК)).
Схему сделаю и еще один модуль будет готов :-)
В архиве рабочий код, прошивка и фаил схемы в протеусе.