Здравствуйте уважаемые! Задача такая, нужно чтобы в определенном диапозоне значений загорался определенный светодиод. К примеру (ADC>0 но ADC<256) и загорается 1 диод. Делал по подобным видео (там разбирали с LCD дисплеем). В протеусе конечно ничего не работает. Уверен что чего то в коде не хватает. Заранее спасибо.
#define F_CPU 8000000
#include <avr/interrupt.h>
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRD=0xff;
PORTD=0x00;
//Настройка АЦП
ADCSRA|= (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);//делитель 128
//ADMUX
ADMUX|= (0<<REFS1) | (1<<REFS0)//опорное напряжение 5в
| (0<<MUX3) | (0<<MUX2) | (0<<MUX1) | (0<<MUX0);
ADCSRA|= (1<<ADEN); //включение АЦП
int readADC() //считывание ацп
{
ADCSRA|= (1<<ADSC); //запуск преобразования
while ((ADCSRA &(1<<ADSC))); //ожидание окончания преобразования
}
unsigned int voltage_ADC ;//переменная результата напряжения
voltage_ADC = ADCW;//считываем значение преобразования
if ((voltage_ADC >768) && (voltage_ADC <1023)) {PORTD = 0b00000010;}
else if ((voltage_ADC >257) && (voltage_ADC <768)) {PORTD = 0b00000100;}
else if ((voltage_ADC >0) && (voltage_ADC <256)) {PORTD = 0b00000001;}
ADCSRA |= (1<<ADSC);//запускаем очередное преобразование
while(1)
{
}
}