ReadAD12

Syntax:

For a normal ( also called a Single Channel ) read use.

    user_variable = ReadAD12( ANX )

For a Differential Channel read use the following. Where ANpX is the positive port, and ANnY is the negative port.

    user_variable = ReadAD12( ANpX , ANnY )

Command Availability:

When using ReadAD12 ( ANX ) the returned value is an 12 bit number [0-4095]. The user variable can be a word, integer or long.

When using ReadAD12 ( ANpX , ANnY ) the returned value is an integer as negative values can be returned.

ReadAD12 is a function that can be used to read the built-in analog to digital converter that many microcontroller chips include. Port should be specified as AN0, AN1, AN2, etc., up to the number of analog inputs available on the chip that is in use. Those familiar with Atmel AVR microcontrollers can also refer to the ports as ADC0, ADC1, etc. Refer to the datasheet for the microcontroller chip to find the number of ports available. (Note: it’s perfectly acceptable to use ANx on AVR, or ADCx on the microcontroller.)

Another function, ReadAD10 is similar to ReadAD12. The only difference is that it returns a 10 bit number.

AD_Delay controls is the acquisition delay. The default value is 20 us. This can be changed to a longer acquisition delay by adding the following constant.

    #define AD_Delay 4 10us

ADSpeed( controls the source of the clock for the ADC module. It varies from one microcontroller to another. InternalClock is a Microchip PIC microcontroller only option that will drive the ADC from an internal RC oscillator. The default value is 128.

    'default value
    #define ADSpeed MediumSpeed


    'pre-defined constants
    #define HighSpeed 255
    #define MediumSpeed 128
    #define LowSpeed 0

Example - Read 12-bit ADC

    #chip 16F1788, 8
    #config osc = int


    'Set the input pin direction
    Dir PORTA.0 In


    'Print 255 readings
    For CurrentAddress = 0 to 255

        'Take a reading and show it
        Print str(ReadAD12(AN0))

        'Wait 10 minutes before getting another reading
        Wait 10 min
    Next

See Also ReadAD, ReadAD10