ah, ok that's explains it, I see now it makes sense.
It drove me nuts because I am not used to it, I learnd mcu programming thru 8051 chips they are much more straight forward(and don't have as much registers).
Thank you very much, I'll try to implement this knowledge now but I have one little question :
I want to use adc channel 0 of the atmega328p chip, I need to do the next:
1. hook up the lead to the 23rd pin of the chip.
2. feed ADMUX register 0 , because I am using the channel 0 and the external reference.
3. set ADCSRA to ADEN=1,ADSC=0(not starting conversion yet),ADATE=0,ADIF=(leaving it alone),ADIE=0,ADSPS = 011(it doesn't meter set the clock to/8).
4. when I want to start a conversion I ADSC to 1 and whit for ADIF to become logic 1.
5. then I read the ADCL and ADCH registers ,int val=0, val|=ADCL, val<<=4,val |=ADCL.
Am I correct ?
and I don't quite get how DIDR1 and DIDR0 effect the adc?