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_flash
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
}
Also 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 ?
MfG
Alex
PS: Allen Usern noch ein gesundes neues Jahr 2006 ! \
/
Lesezeichen