http://s014.radikal.ru/i326/1010/5d/e8dd7488b72a.jpg
код сам вот взял с сайта тогоже где и схему:
Код: Выделить всё
#include <mega8.h>
#include <delay.h>
#define FIRST_ADC_INPUT 0
#define LAST_ADC_INPUT 0
unsigned char adc_data[LAST_ADC_INPUT-FIRST_ADC_INPUT+1];
#define ADC_VREF_TYPE 0x20
interrupt [ADC_INT] void adc_isr(void)
{
static unsigned char input_index=0;
adc_data[input_index]=ADCH;
if (++input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT))
input_index=0;
ADMUX=(FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff))+input_index;
delay_us(10);
ADCSRA|=0x40;
}
void main(void)
{
PORTD=0x00;
DDRD=0xFF;
ADMUX=FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff);
ADCSRA=0xCC;
#asm("sei")
while (1)
{
if(adc_data[0]>10) PORTD.0=1; //ADC>10 (~0.2V)
else PORTD.0=0;
if(adc_data[0]>70) PORTD.1=1; //ADC>70 (~1.4)
else PORTD.1=0;
if(adc_data[0]>130) PORTD.2=1; //~2.5
else PORTD.2=0;
if(adc_data[0]>190) PORTD.3=1; //~3.7
else PORTD.3=0;
if(adc_data[0]>250) PORTD.4=1; //~ 4.9
else PORTD.4=0;
};
}у меня же задача переписать его под мегу 32, и самое главное что бы светики включались когда напряжение уменьшается, сначало 5в, потом 4в, 3в и т.д.