Adcon register with P18F4550


Closed Thread
Results 1 to 14 of 14
  1. #1
    Join Date
    Sep 2006
    Posts
    747

    Default Adcon register with P18F4550

    Hi ,

    I am trying to use A/D conversion, but my code compiles but does not even get to main loop when I add ADCON1 AND ADCON2 registers, these are valid registers in this pic, anybody knows why?

    ADCON0 = %11000001 ' AN0, Configure and turn on A/D Module
    'ADCON1 = %10001001 ' Analog input
    'ADCON2 = %10000001 ' Right justified results for 10 bits,Fosc/8

    K

  2. #2
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default Re: Adcon register with P18F4550

    ADCON0 and ADCON1 bits 6 and 7 should both be 0.

    Are you using ADCIN or working the registers? Show your code.
    Dave
    Always wear safety glasses while programming.

  3. #3
    Join Date
    Sep 2006
    Posts
    747


    Did you find this post helpful? Yes | No

    Default Re: Adcon register with P18F4550

    Ok Thanks , I wiil try it, but the datasheet sheet says: bit 7-6 Unimplemented: Read as ‘0’ .. shouldn't there be no difference as what is there?
    ok work now, but gives me an 8 bit result instead of 10 bit

    K

  4. #4
    Join Date
    Sep 2006
    Posts
    747


    Did you find this post helpful? Yes | No

    Default Re: Adcon register with P18F4550

    Ok Thanks , I wiil try it, but the datasheet sheet says: bit 7-6 Unimplemented: Read as ‘0’ .. shouldn't there be no difference as what is there?
    ok work now, but gives me an 8 bit result instead of 10 bit

    I also have these defines in the prog:
    Define ADC_BITS 10 ' Set number of bits in result
    Define ADC_CLOCK 3 ' Set clock source (3=rc)
    Define ADC_SAMPLEUS 50 ' Set sampling time in uSec

    K
    Last edited by lerameur; - 24th February 2011 at 14:45.

  5. #5
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default Re: Adcon register with P18F4550

    Adcon2.7=1
    Dave
    Always wear safety glasses while programming.

  6. #6
    Join Date
    Sep 2006
    Posts
    747


    Did you find this post helpful? Yes | No

    Default Re: Adcon register with P18F4550

    ya thats what i had before I commented out. See I have 2.23v on pin ANA5 and it reading 93 on the LCD


    K

  7. #7
    Join Date
    Sep 2006
    Posts
    747


    Did you find this post helpful? Yes | No

    Default Re: Adcon register with P18F4550

    I change a bit of the program , but i am still getting 8 bit results ( max 255)

    Code:
    Define ADC_BITS 10 ' Set number of bits in result
    Define ADC_CLOCK 3 ' Set clock source (3=rc)
    Define ADC_SAMPLEUS 50 ' Set sampling time in uSec
    
    ADCON0 = %00000001 ' AN0, Configure and turn on A/D Module
    ADCON1 = %00001001 ' Analog input
    ADCON2.7 =1 	   ' Right justified results for 10 bits,Fosc/8
    
    Check_voltage_Low:
    ADCON0 = 00010001 'Start Conversion
    ADCON2.7 =1
    ADCIN 4, voltage_check 'analog pin 4 get the 10 bit result  Check the battery voltage on pin PORTA.5
    
    lcdout $FE,1, "Battery voltage"
    lcdout $FE,$C0, "TempC: ",  dec voltage_check
    pause 1500
    Return

  8. #8
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default Re: Adcon register with P18F4550

    I never did like ADCIN. Take a look at this thread. It may help.
    http://www.picbasic.co.uk/forum/show...9694#post79694
    Dave
    Always wear safety glasses while programming.

  9. #9
    Join Date
    Sep 2006
    Posts
    747


    Did you find this post helpful? Yes | No

    Default Re: Adcon register with P18F4550

    Thanks Dave, its working now with your method.
    still wandering why the button command do not work.

  10. #10
    Join Date
    Sep 2006
    Posts
    747


    Did you find this post helpful? Yes | No

    Default Re: Adcon register with P18F4550

    Hi,

    I added a 1uF capacitor to the analog pin, hoping it would stabilize the voltage. I am measuring a 12v battery, using a 80Mohm and a 16Mohm divider. I am reading about 2.2v on the pin, but the output oscillates between 425, 429, 433. which seems to be a lot. any other things I can do to stabilize the output ? (hardware) I am also thinking of taking an average of the last three inputs..

    K

  11. #11
    Join Date
    Sep 2006
    Posts
    747


    Did you find this post helpful? Yes | No

    Default Re: Adcon register with P18F4550

    Hi , I added these lines: but it still fluctuates a lot:
    then I output the ChAN_AVG

    Code:
        GOSUB   READ_AD
    	CHAN4_2 = CHAN4_1
    	CHAN4_1 = CHAN4
    	
        CHAN4.HighByte = ADRESH  'PLACES THE HIGH AND LOW BYTE
        CHAN4.LowByte  = ADRESL   'INTO VAR CHAN0
    
    	CHAN_AVG = (CHAN4_2 + CHAN4_1 + CHAN4 ) /3
    	
        RETURN

  12. #12
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default Re: Adcon register with P18F4550

    On similar apps I use a 22uF cap from the ADC pin to VSS.

    How stable is VDD?
    Dave
    Always wear safety glasses while programming.

  13. #13
    Join Date
    Sep 2006
    Posts
    747


    Did you find this post helpful? Yes | No

    Default Re: Adcon register with P18F4550

    I use a 7805 with a 1uF cap and a 47uF cap on the adc pin
    K

  14. #14
    Join Date
    Feb 2011
    Location
    Michigan, USA
    Posts
    33


    Did you find this post helpful? Yes | No

    Default Re: Adcon register with P18F4550

    I believe your problem is this "80Mohm and a 16Mohm divider".

    See section 21.1 in 18F4550 spec sheet.
    It says the maximum recommended impedance for analog
    sources is 2.5 kΩ.

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts