Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
AD7989.h@1:582476614d9d, 2019-01-21 (annotated)
- Committer:
- rvasquez6089
- Date:
- Mon Jan 21 17:27:10 2019 +0000
- Revision:
- 1:582476614d9d
- Parent:
- 0:64eaedfa13a2
- Child:
- 2:60f5474814ac
Added example and class documentation.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| rvasquez6089 | 0:64eaedfa13a2 | 1 | #ifndef AD7989_H |
| rvasquez6089 | 0:64eaedfa13a2 | 2 | #define AD7989_H |
| rvasquez6089 | 0:64eaedfa13a2 | 3 | |
| rvasquez6089 | 0:64eaedfa13a2 | 4 | #include "mbed-os/mbed.h" |
| rvasquez6089 | 1:582476614d9d | 5 | /** An abstraction for an 18 bit ADC |
| rvasquez6089 | 1:582476614d9d | 6 | * @note Not quite sure this is thread or interrupt safe. Treat this as a standard mbed SPI object |
| rvasquez6089 | 1:582476614d9d | 7 | * There are mutex locks when the SPI bus is being used. |
| rvasquez6089 | 1:582476614d9d | 8 | * Example |
| rvasquez6089 | 1:582476614d9d | 9 | * @code |
| rvasquez6089 | 1:582476614d9d | 10 | * #include "mbed.h" |
| rvasquez6089 | 1:582476614d9d | 11 | * #include "AD7989_Driver.h" |
| rvasquez6089 | 1:582476614d9d | 12 | * |
| rvasquez6089 | 1:582476614d9d | 13 | * SPI spi(p5, p6, p7); // mosi, miso, sclk |
| rvasquez6089 | 1:582476614d9d | 14 | * DigitalOut cs(p8); |
| rvasquez6089 | 1:582476614d9d | 15 | * Digitalout convert(p9); |
| rvasquez6089 | 1:582476614d9d | 16 | * AD7989_Driver ADCDEV(&spi, &cs, &convert); |
| rvasquez6089 | 1:582476614d9d | 17 | * double voltage; |
| rvasquez6089 | 1:582476614d9d | 18 | * int main() |
| rvasquez6089 | 1:582476614d9d | 19 | * { |
| rvasquez6089 | 1:582476614d9d | 20 | * while(1) |
| rvasquez6089 | 1:582476614d9d | 21 | * { |
| rvasquez6089 | 1:582476614d9d | 22 | * voltage = ADCDEV.sample(); |
| rvasquez6089 | 1:582476614d9d | 23 | * printf("Voltage = %f Volts", voltage); |
| rvasquez6089 | 1:582476614d9d | 24 | * } |
| rvasquez6089 | 1:582476614d9d | 25 | * } |
| rvasquez6089 | 1:582476614d9d | 26 | */ |
| rvasquez6089 | 0:64eaedfa13a2 | 27 | class AD7989_Driver |
| rvasquez6089 | 0:64eaedfa13a2 | 28 | { |
| rvasquez6089 | 0:64eaedfa13a2 | 29 | public: |
| rvasquez6089 | 0:64eaedfa13a2 | 30 | /** Constructor for AD7989_Drive object |
| rvasquez6089 | 0:64eaedfa13a2 | 31 | * |
| rvasquez6089 | 0:64eaedfa13a2 | 32 | * @param SPI_BUS this is the SPI bus the AD7989 is one |
| rvasquez6089 | 0:64eaedfa13a2 | 33 | * @param Chip_Select this is the DigitalOut outline connected to CS pin |
| rvasquez6089 | 0:64eaedfa13a2 | 34 | * @param Convert this is the DigitalOut pin that is connected to the CONV pin |
| rvasquez6089 | 0:64eaedfa13a2 | 35 | */ |
| rvasquez6089 | 0:64eaedfa13a2 | 36 | AD7989_Driver(SPI *SPI_BUS, DigitalOut *Chip_Select, DigitalOut *Convert); |
| rvasquez6089 | 0:64eaedfa13a2 | 37 | /** Function returns the voltage on the AD7989 as a double |
| rvasquez6089 | 0:64eaedfa13a2 | 38 | * The value the function will return will be from -5.0V to 5.0V |
| rvasquez6089 | 0:64eaedfa13a2 | 39 | */ |
| rvasquez6089 | 0:64eaedfa13a2 | 40 | double sample(); |
| rvasquez6089 | 0:64eaedfa13a2 | 41 | /** averages a number of samples the use specifies |
| rvasquez6089 | 0:64eaedfa13a2 | 42 | * |
| rvasquez6089 | 0:64eaedfa13a2 | 43 | * @param num_avgs The number of samples to average |
| rvasquez6089 | 0:64eaedfa13a2 | 44 | */ |
| rvasquez6089 | 0:64eaedfa13a2 | 45 | double sample_avg(int num_avgs); |
| rvasquez6089 | 0:64eaedfa13a2 | 46 | |
| rvasquez6089 | 0:64eaedfa13a2 | 47 | float volts; |
| rvasquez6089 | 0:64eaedfa13a2 | 48 | private: |
| rvasquez6089 | 0:64eaedfa13a2 | 49 | static const float zero_point; |
| rvasquez6089 | 0:64eaedfa13a2 | 50 | SPI *ADC_SPI; |
| rvasquez6089 | 0:64eaedfa13a2 | 51 | DigitalOut *CS; |
| rvasquez6089 | 0:64eaedfa13a2 | 52 | DigitalOut *ADC_CONV; |
| rvasquez6089 | 0:64eaedfa13a2 | 53 | }; |
| rvasquez6089 | 0:64eaedfa13a2 | 54 | |
| rvasquez6089 | 0:64eaedfa13a2 | 55 | #endif |