ATmega2560 ADC 1000kHz?

OP #3303199
Lesenswert?

Hallo an alle,
ich möchte einen Kanal des ADCs eines ATmega2560 gerne so schnell wie 
möglich umwandeln lassen. Laut Datenblatt sind 1000kHz möglich, die 
Auflösung beträgt dann allerdings nur noch 7 oder 8 (?) bit (ist für 
mich ok). Leider verstehe ich nicht ganz, welche Register man dazu 
setzen muss. Anscheinend reicht es nicht aus, einfach nur den Prescaler 
hochzusetzen (Anscheinend steht die Auflösung immer noch bei 10bit), auf 
jeden Fall kommt nichts brauchbares dabei raus.
Momentan sieht mein C-Code so aus (die Wandlung bezieht sich nur auf 
Kanal 13):
1
ADCSRA |= (1<<ADPS2);  //Prescaler 16: 16MHz/16 = 1000kHz
2
ADMUX |= (1<<REFS0);   //AVCC als Referenz
3
ADMUX &= 0xE0;         //ADMUX 0-4 löschen
4
ADMUX |= (13&0x07);    //Kanal 13
5
ADCSRB = (13&(1<<3)    //" (MUX5)
6
ADCSRA |= (1<<ADSC);   //Wandlung starten
7
while(ADCSRA & (1<<ADSC));
8
uint8_t result = ADCW;

Vielleicht wäre Assembler da noch besser, aber damit habe ich gar keine 
Erfahrung...

Was meint ihr?
Vielen Dank schon mal und
Grüße
Jan

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren