I'm used to program in C but not in ASM. I usually do not take care how long takes to do a full ADC cycle, but now I have to. I'm working in an application that reads 6 analog inputs (an0 - an5), sequentialy or and it must be done fast, the fastest possible. The pic (dspic30f4011) works at its maximal Fosc (117,92 MHz with internal 7,37 and PLLx16). I've read datasheet of dspic30f4011/4012 chapter 20 "10-BIT, HIGH-SPEED ANALOGTO-DIGITAL CONVERTER (ADC) MODULE" and dspic30f Family Reference Manual section 17 "10-bit A/D Converter", but it is not clear to me. I wil continue working in C, but my wish is to configure ADC operation thru accessing registers (ADCON1, ADCON2, ADCON3, ADCHS, any more?) First of all, i'm not sure which is the max speed I can obtain for a 6 diferent inputs, 1 Msps? 750 ksps? 600 ksps? Less? If 1 Msps is possible, then every read I've to reconfigure multiplexers to set a different input channel, how is it done? According to figure 20-1, for AN0 How do I configure channels? I think there are automatic modes for up to 4 channels, but what about six? How do I configure registers to do that? Where do I read values from conversions, ADCBUF0 everytime? or ADCBUF0 - 5 for each channel? As you can see, I'm a bit (a lot), confused about manually configuring ADC, any light on this will be apreciated. --=20 http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .