سلام دوستان
من ADC رو در روبات میکرو موسم راه انداختم اما مشکلی که هس تنها مقادیری که روی LCD من دارم 255(در صورتی که ADC0 به 5 ولت متصل بشه) ، 143(به جایی متصل نباشه) و 0( اگه به زمین وصل بشه). اگه خروجی سنسورم رو به ADC0 بدم هیچ تغییر نیمیکنه و همیشه 143 هست ...
اینم کد هام :
من ADC رو در روبات میکرو موسم راه انداختم اما مشکلی که هس تنها مقادیری که روی LCD من دارم 255(در صورتی که ADC0 به 5 ولت متصل بشه) ، 143(به جایی متصل نباشه) و 0( اگه به زمین وصل بشه). اگه خروجی سنسورم رو به ADC0 بدم هیچ تغییر نیمیکنه و همیشه 143 هست ...
اینم کد هام :
کد:
#include <mega32.h> #include <delay.h> // Alphanumeric LCD functions #include <alcd.h> #include <stdlib.h> #define ADC_VREF_TYPE 0x40 // Read the AD conversion result unsigned int 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 ADCW; } // Declare your global variables here void main(void) { char temp[100]; unsigned int t; // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00; DDRA=0x00; // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00; DDRB=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC Clock frequency: 500.000 kHz // ADC Voltage Reference: AREF pin ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x87; //0x81 lcd_init(16); while (1) { t = read_adc(0)>>2; itoa(t,temp); lcd_puts(temp); delay_ms(50); lcd_clear(); if(t>140 && t<255) { PORTD=0xFF; PORTC=0xFF; // delay_ms(50); } else { PORTD=0x00; PORTC=0x00; // delay_ms(50); } } }
دیدگاه