Wie ist denn der COde für deine Funktion dann nun insgesamt?
Muss mit dem Teil möglichst schnell (innerhalb der nächsten Tage) einen sharp-entfernungsmesser auslesen und der µC soll auch noch was machen während er auf den ACD wartet... bitte helft mir
MfG dark_flashAlso in der MAin wird die Methode mit dem Port aufgerufen, an welchem gemessen werden soll... sonst ist eigentlich alles kommentiert...oder gibt es nocht Fragen ?Code:uint16_t getADC(uint8_t pin); * main program */ { /* define port a as imput ( A/D-converter inputs ) */ DDRA = 0x00; PORTA = 0x00; int s1 = getADC(0); } uint16_t getADC(uint8_t pin) { uint16_t adc_value = 0; // min Prescaler = µC Frequ / 200 KHz & max Prescaler = µC Freq. / 50 khz = min 80 & max 320 ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0); // Prescalar = 128 ADMUX = pin; ADMUX |= (1<<REFS1) | (1<<REFS0); // use internal voltage ADCSRA |= (1<<ADSC); while (!(ADCSRA & (1<<ADIF))); // wait for finish converting ADIF bit adc_value = ADCW; // read result ADCSRA = (1<<ADIF); // delete ADIF, cause it could trigger an ISR return adc_value; // return result }
MfG
Alex
PS: Allen Usern noch ein gesundes neues Jahr 2006 ! \/






Zitieren

Lesezeichen