Ein Auszug aus meiner iom16.h :
#define ADCSRA _SFR_IO8(0x06)
#define ADPS0 0
#define ADPS1 1
#define ADPS2 2
#define ADIE 3
#define ADIF 4
#define ADATE 5
#define ADSC 6
#define ADEN 7
Der ADFR ist dabei Bit Nr. 5 also muß es heissen (1<<ADATE) und nicht (1<<ADFR)

Komisch, warum das so ist weiß ich nicht, ich dachte, daß wäre 1:1 von den Bits des AVR´s
übernommen.
Ist es ein Bug, oder warum haben sie den Namen geändert ?
Na ja versuch es mit ADATE

Gruß Sebastian


EDIT:

Ups, stimmt alles nicht so ganz, also :
es gibt wirklich kein ADFR bei MEGA 16 sondern ADATE:
Bit5 - ADATE: ADC Auto Trigger Enable
When this bit is writen to one Auto Triggering of the ADC is enabled.
also ADATE doch einschalten


Und wann er dann Triggerd bestimmt der Register SFIOR
Für Free Running mode sieht es dann so aus

SFIOR &= ~(1<<ADTS0) | (1<<ADTS1) | (1<<ADTS2);

Sehe auch Dattenblatt Seite 215.
Damit hast Du den Free Running eingeschaltet.

Ich habe es mit Dattenblatt von Mega 8 verglichen, wußte nicht, daß sie das bei Mega 16
sooooo verändert haben