All, A question about the 10 bit AD on an F877. Referring to the code snippet below, looking at the line indicated ( by **--->), can anyone explain why when this reads 'bsf STATUS,RP0', the program hangs apparently at that line. If we change it to read 'bcf STATUS,RP0', the program don't hang, but we still can't get the 2 bits of the LSB. We've tried adding a wait before changing banks, we've tried changing the justification of the result, we've tried changing the order in which we read the result, we've cussed at it, etc., etc., but nothing has helped. I tried calling MCHIP, but the phone message says they can't answer the phone at this time, so I just left a message. But I need an answer ASAP. I prefer not to wait until next week when they get back to me, if then. If you have any further questions, email me. Does anyone have any ideas to try that I haven't mentioned? If so, any and all are welcome. Please advise. Thanks and Regards, jim RdVrp ; read ASIC pos ref voltage errorlevel -302 bcf STATUS, RP0 ;bank 0 bcf STATUS, RP1 movlw B'01001001' ;Fosc/8, A/D chan 1, A/D on movwf ADCON0 bsf ADCON0, GO movlw D'1' call Wait VrpWait btfsc ADCON0, GO goto VrpWait bcf STATUS, RP0 movf ADRESH, W movwf AccaH ; movlw D'2' ; wait 2ms ; call Wait ; bcf PIR1, 6 ; clear int flag **---> bsf STATUS,RP0 ; goto page 1 ; movf ADRESL, W ; movwf AccaL call PrintHex return -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads