Hi! You have a mistake in AdcGet routine.The problem is in here: your code says movlw B'10000001' iorwf STORE movwf ADCON0 which means that you execute inclusive or between w and STORE file BUT your result gets back in STORE instead of w, because file is the default destination. You are puting the same number b10000001 in ADCON0 all over again so you are reading only channel 0 all the time.Code should read: movlw B'10000001' iorwf STORE, w ;result of or function is now in w and you send that in ADCON0 movwf ADCON0 Best of luck with your project, regards, Samo > > AdcGet > bcf STATUS,C > movf CHAN,W > movwf STORE > rlf STORE,F > rlf STORE,F > rlf STORE,F > > clrf DELAY > Wait1 > decfsz DELAY,F > goto Wait1 > Sample > bcf PIR1, ADIF > bsf ADCON0,GO > Wait2 > decfsz DELAY,F > goto Wait2 > Wait3 > btfsc ADCON0,GO > goto Wait3 > GetVal > movf ADRESH,W > movwf MEMHI > bcf STATUS,RP1 > bsf STATUS,RP0 > movf ADRESL,W > bcf STATUS,RP0 > movwf MEMLO > call Delay64I ; 64 Instruction 2*Tad delay > > return -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu