ADC Class Reference

`#include <ADC.h>`

## Classes

struct | Sync_result
| Struct for synchronous measurements. More...

## 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...
bool | startSingleRead (uint8_t pin, int8_t adc_num=-1)
| Starts an analog measurement on the pin 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...
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...
Sync_result | analogSynchronizedRead (uint8_t pin0, uint8_t pin1)
| Returns the analog values of both pins, measured at the same time by the two ADC modules. More...
Sync_result | analogSyncRead (uint8_t pin0, uint8_t pin1)
| Same as analogSynchronizedRead. More...
bool | startSynchronizedSingleRead (uint8_t pin0, uint8_t pin1)
| Starts an analog measurement at the same time on the two ADC modules. More...
Sync_result | readSynchronizedSingle ()
| Reads the analog value of a single conversion. More...
bool | startSynchronizedContinuous (uint8_t pin0, uint8_t pin1)
| Starts a continuous conversion in both ADCs simultaneously. More...
Sync_result | readSynchronizedContinuous ()
| Returns the values of both ADCs. More...
void | stopSynchronizedContinuous ()
| Stops synchronous continuous conversion.
void | resetError ()

## Public Attributes

ADC_Module *const | adc0 = &adc0_obj
| Object to control the ADC0.
ADC_Module *const | adc1 = &adc1_obj
| Object to control the ADC1.
ADC_Module *const | adc [ADC_NUM_ADCS] = {adc0, adc1}
| 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 | channel2sc1aADC1 [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 uint8_t | sc1a2channelADC1 [ADC_MAX_PIN+1]
| Translate pin number to SC1A nomenclature for differential pins.

## 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

  pin | ADC_INTERNAL_SOURCE to read.
  adc_num | ADC_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

  pin | can be any of the analog pins
  adc_num | ADC_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_num | ADC_X ADC module

Returns
  the last converted value.

## analogSynchronizedRead()

Sync_result ADC::analogSynchronizedRead | ( | uint8_t | pin0,
|  | uint8_t | pin1
| ) |  |

Returns the analog values of both pins, measured at the same time by the two ADC modules.

It waits until the values are read and then returns the result as a struct Sync_result, use Sync_result.result_adc0 and Sync_result.result_adc1. If a comparison has been set up and fails, it will return ADC_ERROR_VALUE in both fields of the struct. This function is interrupt safe, so it will restore the adc to the state it was before being called

Parameters

  pin0 | pin in ADC0
  pin1 | pin in ADC1

Returns
  a Sync_result struct with the result of each ADC value.

## analogSyncRead()

Sync_result ADC::analogSyncRead | ( | uint8_t | pin0,
|  | uint8_t | pin1
| ) |  |

inline

Same as analogSynchronizedRead.

Parameters

  pin0 | pin in ADC0
  pin1 | pin in ADC1

Returns
  a Sync_result struct with the result of each ADC 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_num | ADC_X ADC module

Returns
  the converted value.

## readSynchronizedContinuous()

Sync_result ADC::readSynchronizedContinuous | ( |  | ) |

Returns the values of both ADCs.

Returns
  the converted value.

## readSynchronizedSingle()

Sync_result ADC::readSynchronizedSingle | ( |  | ) |

Reads the analog value of a single conversion.

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

  pin | can be any of the analog pins
  adc_num | ADC_X ADC module

Returns
  true if the pin is 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

  pin | can be any of the analog pins
  adc_num | ADC_X ADC module

Returns
  true if the pin is valid, false otherwise.

## startSynchronizedContinuous()

bool ADC::startSynchronizedContinuous | ( | uint8_t | pin0,
|  | uint8_t | pin1
| ) |  |

Starts a continuous conversion in both ADCs simultaneously.

Use readSynchronizedContinuous to get the values

Parameters

  pin0 | pin in ADC0
  pin1 | pin in ADC1

Returns
  true if the pins are valid, false otherwise.

## startSynchronizedSingleRead()

bool ADC::startSynchronizedSingleRead | ( | uint8_t | pin0,
|  | uint8_t | pin1
| ) |  |

Starts an analog measurement at the same time on the two ADC modules.

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

Parameters

  pin0 | pin in ADC0
  pin1 | pin in ADC1

Returns
  true if the pins are valid, false otherwise.

## stopContinuous()

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

Stops continuous conversion.

Parameters

  adc_num | ADC_X ADC module

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

- ADC.h