//code for joysticks and switches on remote
/*************GLOBAL VARIABLES********/
//#define ADC_VREF_TYPE 0x20
#define ADC_VREF_TYPE 0x60
unsigned char sens[4],sensor;
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
_delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
int main(void)
{
init_port();
init_adc();
init_usart();
//init_timer0();
//init_timer2();
//init_timer1();
//init_analog_com();
//init_timer_counter_interrupt();
sei();
unsigned char i,POT1,POT2;
while(1)//tx
{
POT1=read_adc(0);
POT2=read_adc(1);
if(check_bit(&PIND,4)==0)
{
i='h'; //auto
printf("%c",i);
}
else if(check_bit(&PIND,3)==0)
{
i='r'; //reset
printf("%c",i);
}
else if(check_bit(&PIND,5)==0)
{
i='g'; //pump_on
printf("%c",i);
}
else if(check_bit(&PIND,6)==0)
{
i='j'; //led testing
printf("%c",i);
}
/*
else if(POT2>200)
{i='a';
printf("%c",i);
}
else if(POT2<50)
{i='b';
printf("%c",i);
}
else if(50<POT2<200)
{i='c';
printf("%c",i);
}
*/
else if((POT1>200 && POT2<50)||(POT1<50 && POT2>200))
{
if(POT1>200 && POT2<50)
i='a';//bot forward
if(POT1<50 && POT2>200)
i='b';//bot reverse
}
else if((POT1<50 && POT2<50)||(POT1>200 && POT2>200))
{
if(POT1<50 && POT2<50)
i='e';//bot diff right
if(POT1>200 && POT2>200)
i='d';//bot diff left
}
else if((POT1<50 || POT1>200))
{
if(POT1<50)
i='p';//bot right
if(POT1>200)
i='q';//bot radial right
}
else if((POT2<50 || POT2>200))
{
if(POT2<50)
i='m';//bot radial left
if(POT2>200)
i='n';//bot diff left
}
/* else//if( (POT1>100 && POT1<200) && ( POT2>100&&POT2<200) )
i='c';//bot brake
//printf("%c",i);
//////////
/*
if(POT1>200)
{
i='a';//for
printf("%c",i);
}
else if(POT1<100)
{i='b';//rev
printf("%c",i);
}
else if(POT1<200&&POT1>100)
{
i='c';
printf("%c",i);//f
if(POT2<100)
i='e';//for
else if(POT2>220)
i='d';rev
else
i='c';
printf("%c",i);
}
*/
else
i='c';
//printf("%c",i);
_delay_ms(10);
printf("%c",i);
}//wh
return 0;
}