A/D converter fails?


Closed Thread
Results 1 to 15 of 15

Hybrid View

  1. #1
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    ADCON0.0 = 1 ' <-- Turn ON A/D module
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  2. #2
    egberttheone's Avatar
    egberttheone Guest


    Did you find this post helpful? Yes | No

    Thumbs down

    Quote Originally Posted by Bruce
    ADCON0.0 = 1 ' <-- Turn ON A/D module
    please read before replying; i told that all these bits are set AND i sad that it works without the pause command or do you want to say that beacause i added the command line "pause 50" that the a/d conversion module shuts off?

  3. #3
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    Sorry. It's hard to "guess" how you're configuring things if you don't show it in your code.

    I'm sure this isn't what the rest of your own application is doing, but it works fine with the
    pause 50 in there;
    Code:
        @ DEVICE HS_OSC, WDT_ON, LVP_OFF, PROTECT_OFF
        DEFINE OSC 20
        
        SYMBOL AD_Progress = ADCON0.2
        SYMBOL ADON = ADCON0.0
        SYMBOL LED = PORTB.0
      
        Sound_Level VAR WORD
        
        TRISA.0 = 1     ' A/D input
        PORTB.0 = 1     ' LED on at boot
        TRISB.0 = 0     ' LED output
          
        ADCON0 = 128 ' A/D clock Fosc/32, RA0/AN0, A/D disabled
        ANSEL = 1       ' RA0 analog
        ADCON1.7 = 1  ' right justify for 10-bit
    
    Main:
        ADON = 1        ' turn on A/D module
        PAUSE 50        ' wait
        AD_Progress = 1 ' start conversion
        
        WHILE AD_Progress = 1 : WEND
        Sound_Level.lowbyte = ADRESL
        Sound_Level.highbyte = ADRESH
        LED = LED ^ 1    ' toggle LED for visual
        GOTO Main
        
        END
    I left the WDT enabled just to be sure PBP was handling it during the pause periods.
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  4. #4
    egberttheone's Avatar
    egberttheone Guest


    Did you find this post helpful? Yes | No

    Default

    this code works but if you change the input port of the a/d convertor and then add a pause in the line between changing and a/d conversions start then it stucks.

    example:

    Code:
    'retrieve sound level
    ADCON0.5 = 0
    ADCON0.4 = 0
    ADCON0.3 = 0
    pause 50
    AD_Progress = 1
    while AD_Progress = 1: wend
    Sound_Level.lowbyte = ADRESL
    Sound_Level.highbyte = ADRESH
    
    'retrieve negative level
    ADCON0.5 = 0
    ADCON0.4 = 0
    ADCON0.3 = 1
    pause 50
    AD_Progress = 1
    while AD_Progress = 1: wend
    Negative_Voltage.lowbyte = ADRESL
    Negative_Voltage.highbyte = ADRESH
    
    'retrieve positieve level
    ADCON0.5 = 0
    ADCON0.4 = 1
    ADCON0.3 = 0
    pause 50
    AD_Progress = 1
    while AD_Progress = 1: wend
    Positive_Voltage.lowbyte = ADRESL
    Positive_Voltage.highbyte = ADRESH
    Last edited by egberttheone; - 8th February 2006 at 21:12.

  5. #5
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    That's odd. It works for me without getting stuck.

    I modified your version to include 3 LED's in the last section of each channel read routine,
    and all 3 LED's blink right along.

    It doesn't appear to be getting getting stuck at any point.
    Code:
        @ DEVICE HS_OSC, WDT_ON, LVP_OFF, PROTECT_OFF
        DEFINE OSC 20
        
        SYMBOL AD_Progress = ADCON0.2
        SYMBOL ADON = ADCON0.0
        SYMBOL LED1 = PORTB.0
        SYMBOL LED2 = PORTB.1
        SYMBOL LED3 = PORTB.2
      
        Sound_Level VAR WORD
        Negative_Voltage VAR WORD
        Positive_Voltage VAR WORD
        
        TRISA.0 = 1         ' A/D input
        PORTB = %00000111   ' LED's on at boot
        TRISB = 0           ' LED outputs
          
        ADCON0 = 128    ' A/D clock Fosc/32, RA0/AN0, A/D disabled
        ANSEL = 1       ' RA0 analog
        ADCON1.7 = 1    ' right justify for 10-bit
    
    Main:
        ADON = 1        ' turn on A/D module
        PAUSE 50        ' wait
        AD_Progress = 1 ' start conversion 
        WHILE AD_Progress = 1: WEND
        Sound_Level.lowbyte = ADRESL
        Sound_Level.highbyte = ADRESH
        LED1 = LED1 ^ 1    ' toggle LED for visual
        
        'retrieve negative level
        ADCON0.5 = 0
        ADCON0.4 = 0
        ADCON0.3 = 1
        PAUSE 50
        AD_Progress = 1
        WHILE AD_Progress = 1: WEND
        Negative_Voltage.lowbyte = ADRESL
        Negative_Voltage.highbyte = ADRESH
        LED2 = LED2 ^ 1    ' toggle LED for visual
        
        'retrieve positieve level
        ADCON0.5 = 0
        ADCON0.4 = 1
        ADCON0.3 = 0
        PAUSE 50
        AD_Progress = 1
        WHILE AD_Progress = 1: WEND
        Positive_Voltage.lowbyte = ADRESL
        Positive_Voltage.highbyte = ADRESH
        LED3 = LED3 ^ 1    ' toggle LED for visual
        GOTO Main
        
        END
    Are you reading 0-5 VDC voltage levels?
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  6. #6
    egberttheone's Avatar
    egberttheone Guest


    Did you find this post helpful? Yes | No

    Default

    yes, i'm reading voltage's between 0-5VDC. i found out that it doesn't mather where i place the pause command(in the interrupt routine); it instant freez the pic forever. The AD routine is placed in a interrupt routine is it not possible to place a pause periode into a interrupt handel?

    note: timer0, timer1 and serial interrupt are activated.

  7. #7
    egberttheone's Avatar
    egberttheone Guest


    Did you find this post helpful? Yes | No

    Default

    any one ?

Similar Threads

  1. Replies: 9
    Last Post: - 31st July 2008, 08:56
  2. A/D converter sample
    By allan josephus in forum mel PIC BASIC
    Replies: 5
    Last Post: - 23rd February 2008, 19:44
  3. A/D converter with pic16f84, i need a help
    By micro in forum General
    Replies: 0
    Last Post: - 13th December 2005, 21:17
  4. help with pic16f870 a/d converter
    By cammo in forum mel PIC BASIC
    Replies: 3
    Last Post: - 22nd March 2005, 05:16
  5. Re Cs5532 A/d Converter
    By massquip in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 29th April 2004, 16:31

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