سلام
من با بسکام وقتی تاچ راه اندازی میکنم کاملا دقیق است و وقتی صفحه رو مس نمیکنم عدد متغیر adc صفر هستش!!
ولی همون مدار با C وقتی صفحه رو لمس نمی کنم عدد adc از 0 تا 100 تغیر میکنه!!!!!
اینم برنامه ADC کجاش مشکل داره:
[code=c]#define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (0<<ADLAR))
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | ADC_VREF_TYPE;
delay_us(10);
ADCSRA|=(1<<ADSC);
while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
return ADCW;
}
void main(void)
{
ADMUX=ADC_VREF_TYPE;
ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);
}
[/code]
من با بسکام وقتی تاچ راه اندازی میکنم کاملا دقیق است و وقتی صفحه رو مس نمیکنم عدد متغیر adc صفر هستش!!
ولی همون مدار با C وقتی صفحه رو لمس نمی کنم عدد adc از 0 تا 100 تغیر میکنه!!!!!
اینم برنامه ADC کجاش مشکل داره:
[code=c]#define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (0<<ADLAR))
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | ADC_VREF_TYPE;
delay_us(10);
ADCSRA|=(1<<ADSC);
while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
return ADCW;
}
void main(void)
{
ADMUX=ADC_VREF_TYPE;
ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);
}
[/code]
دیدگاه