Спойлер
Код: Выделить всё
#define F_CPU 8000000L
#define BAUD 9600L
#define UBRRL_VALUE (F_CPU/(BAUD*16))-1
#include
#include
void setUART(void);
void outputUART(unsigned char key);
void portSetup(void);
void setADC(void);
//void readADC(unsigned int adc_input);
char buf0[5];
char buf1[5];
void setADC(void){
ADMUX = (1<<6);
ADCSRA|=(1<<ADPS0)|(1<<ADPS1)|(1<<ADPS2);
ADCSRA|=(1<<ADEN);
}
unsigned int readADC(unsigned int ch)
{
unsigned char set_admux = ADMUX;
set_admux&=~((1<<MUX3)|(1<<MUX2)|(1<<MUX1)|(1<<MUX0));
switch(ch)
{
case 0: set_admux|=((0<<MUX4)|(0<<MUX3)|(0<<MUX2)|(0<<MUX1)|(0<<MUX0)); break;
case 1: set_admux|=((0<<MUX4)|(0<<MUX3)|(0<<MUX2)|(0<<MUX1)|(1<<MUX0)); break;
case 2: set_admux|=((0<<MUX4)|(0<<MUX3)|(0<<MUX2)|(1<<MUX1)|(0<<MUX0)); break;
case 3: set_admux|=((0<<MUX4)|(0<<MUX3)|(0<<MUX2)|(1<<MUX1)|(1<<MUX0)); break;
default: break;
}
ADMUX=set_admux;
_delay_us(10);
int tmp=0;
for (int i=0;i<64;i++)
{
ADCSRA|=(1<<ADSC);
while ((ADCSRA&(1<>8;
UBRRL=UBRRL_VALUE;
UCSRA=0;
UCSRB|=(1<<TXEN);
UCSRC!=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
}
void outputUART(unsigned char key){
while ((UCSRA&(1<<UDRE))==0);
UDR=key;
}
void portSetup(void){
DDRA&=~((1<<0)|(1<<1));
}
void send_Uart_str(unsigned char *s)// Отправка строки
{
while (*s != 0) outputUART(*s++);
}
int main(void)
{
portSetup();
setUART();
setADC();
while(1)
{
char a=(readADC(0)+'0');
char b=(readADC(1)+'0');
outputUART(a+b);
_delay_ms(400);
}
}

