ADC  8.0
Analog to Digital Conversor library for the Teensy 3.0 microprocessor
ADC Class Reference

#include <ADC.h>

Public Member Functions

 ADC ()
 
int analogRead (uint8_t pin, int8_t adc_num=-1)
 Returns the analog value of the pin. More...
 
int analogRead (ADC_INTERNAL_SOURCE pin, int8_t adc_num=-1)
 Returns the analog value of the special internal source, such as the temperature sensor. More...
 
int analogReadDifferential (uint8_t pinP, uint8_t pinN, int8_t adc_num=-1)
 Reads the differential analog value of two pins (pinP - pinN). More...
 
bool startSingleRead (uint8_t pin, int8_t adc_num=-1)
 Starts an analog measurement on the pin and enables interrupts. More...
 
bool startSingleDifferential (uint8_t pinP, uint8_t pinN, int8_t adc_num=-1)
 Start a differential conversion between two pins (pinP - pinN) and enables interrupts. More...
 
int readSingle (int8_t adc_num=-1)
 Reads the analog value of a single conversion. More...
 
bool startContinuous (uint8_t pin, int8_t adc_num=-1)
 Starts continuous conversion on the pin. More...
 
bool startContinuousDifferential (uint8_t pinP, uint8_t pinN, int8_t adc_num=-1)
 Starts continuous conversion between the pins (pinP-pinN). More...
 
int analogReadContinuous (int8_t adc_num=-1)
 Reads the analog value of a continuous conversion. More...
 
void stopContinuous (int8_t adc_num=-1)
 Stops continuous conversion. More...
 
void resetError ()
 

Public Attributes

ADC_Module *const adc0 = &adc0_obj
 Object to control the ADC0.
 
ADC_Module *const adc [ADC_NUM_ADCS] = {adc0}
 Array with the ADC Modules.
 

Static Public Attributes

static const uint8_t channel2sc1aADC0 [ADC_MAX_PIN+1]
 Translate pin number to SC1A nomenclature.
 
static const uint8_t sc1a2channelADC0 [ADC_MAX_PIN+1]
 Translate pin number to SC1A nomenclature for differential pins.
 
static const ADC_Module::ADC_NLIST diff_table_ADC0 [ADC_DIFF_PAIRS]
 Translate differential pin number to SC1A nomenclature.
 

Detailed Description

Class ADC: Controls the Teensy 3.x, 4 ADC

Constructor & Destructor Documentation

◆ ADC()

ADC::ADC ( )

Default constructor

Member Function Documentation

◆ analogRead() [1/2]

int ADC::analogRead ( ADC_INTERNAL_SOURCE  pin,
int8_t  adc_num = -1 
)
inline

Returns the analog value of the special internal source, such as the temperature sensor.

It calls analogRead(uint8_t pin) internally, with the correct value for the pin for all boards. Possible values: TEMP_SENSOR, Temperature sensor. VREF_OUT, 1.2 V reference (switch on first using VREF.h). BANDGAP, BANDGAP (switch on first using VREF.h). VREFH, High VREF. VREFL, Low VREF.

Parameters
pinADC_INTERNAL_SOURCE to read.
adc_numADC_X ADC module
Returns
the value of the pin.

◆ analogRead() [2/2]

int ADC::analogRead ( uint8_t  pin,
int8_t  adc_num = -1 
)

Returns the analog value of the pin.

It waits until the value is read and then returns the result. If a comparison has been set up and fails, it will return ADC_ERROR_VALUE. This function is interrupt safe, so it will restore the adc to the state it was before being called If more than one ADC exists, it will select the module with less workload, you can force a selection using adc_num. If you select ADC1 in Teensy 3.0 it will return ADC_ERROR_VALUE.

Parameters
pincan be any of the analog pins
adc_numADC_X ADC module
Returns
the value of the pin.

◆ analogReadContinuous()

int ADC::analogReadContinuous ( int8_t  adc_num = -1)

Reads the analog value of a continuous conversion.

Set the continuous conversion with with analogStartContinuous(pin) or startContinuousDifferential(pinP, pinN). If single-ended and 16 bits it's necessary to typecast it to an unsigned type (like uint16_t), otherwise values larger than 3.3/2 V are interpreted as negative!

Parameters
adc_numADC_X ADC module
Returns
the last converted value.

◆ analogReadDifferential()

int ADC::analogReadDifferential ( uint8_t  pinP,
uint8_t  pinN,
int8_t  adc_num = -1 
)

Reads the differential analog value of two pins (pinP - pinN).

It waits until the value is read and then returns the result. This function is interrupt safe, so it will restore the adc to the state it was before being called If more than one ADC exists, it will select the module with less workload, you can force a selection using adc_num

Parameters
pinPmust be A10 or A12.
pinNmust be A11 (if pinP=A10) or A13 (if pinP=A12).
adc_numADC_X ADC module
Returns
the differential value of the pins, invalid pins return ADC_ERROR_VALUE. If a comparison has been set up and fails, it will return ADC_ERROR_VALUE.

◆ readSingle()

int ADC::readSingle ( int8_t  adc_num = -1)

Reads the analog value of a single conversion.

Set the conversion with with startSingleRead(pin) or startSingleDifferential(pinP, pinN).

Parameters
adc_numADC_X ADC module
Returns
the converted value.

◆ resetError()

void ADC::resetError ( )
inline

ERRORS ///// Resets all errors from all ADCs, if any.

◆ startContinuous()

bool ADC::startContinuous ( uint8_t  pin,
int8_t  adc_num = -1 
)

Starts continuous conversion on the pin.

It returns as soon as the ADC is set, use analogReadContinuous() to read the value.

Parameters
pincan be any of the analog pins
adc_numADC_X ADC module
Returns
true if the pin is valid, false otherwise.

◆ startContinuousDifferential()

bool ADC::startContinuousDifferential ( uint8_t  pinP,
uint8_t  pinN,
int8_t  adc_num = -1 
)

Starts continuous conversion between the pins (pinP-pinN).

It returns as soon as the ADC is set, use analogReadContinuous() to read the value.

Parameters
pinPmust be A10 or A12.
pinNmust be A11 (if pinP=A10) or A13 (if pinP=A12).
adc_numADC_X ADC module
Returns
true if the pins are valid, false otherwise.

◆ startSingleDifferential()

bool ADC::startSingleDifferential ( uint8_t  pinP,
uint8_t  pinN,
int8_t  adc_num = -1 
)

Start a differential conversion between two pins (pinP - pinN) and enables interrupts.

It returns immediately, get value with readSingle(). If this function interrupts a measurement, it stores the settings in adc_config

Parameters
pinPmust be A10 or A12.
pinNmust be A11 (if pinP=A10) or A13 (if pinP=A12).
adc_numADC_X ADC module
Returns
true if the pins are valid, false otherwise.

◆ startSingleRead()

bool ADC::startSingleRead ( uint8_t  pin,
int8_t  adc_num = -1 
)

Starts an analog measurement on the pin and enables interrupts.

It returns immediately, get value with readSingle(). If this function interrupts a measurement, it stores the settings in adc_config

Parameters
pincan be any of the analog pins
adc_numADC_X ADC module
Returns
true if the pin is valid, false otherwise.

◆ stopContinuous()

void ADC::stopContinuous ( int8_t  adc_num = -1)

Stops continuous conversion.

Parameters
adc_numADC_X ADC module

The documentation for this class was generated from the following file: