A library to interface to the MCP3208 SPI-based ADC from Microchip. This chip provides eight analogue inputs, providing converted 12-bit values via SPI.
Dependents: Nucleo_MCP3208_Test Nucleo_MCP3208_Ticker_Test BBMv2_eps ref_BBMv2_eps ... more
mcp3208.h
- Committer:
- Kemp
- Date:
- 2011-05-24
- Revision:
- 1:316f86115221
- Parent:
- 0:d37e8cb188c1
- Child:
- 2:93009a423b45
File content as of revision 1:316f86115221:
#include "mbed.h" #ifndef MCP3208_H #define MCP3208_H enum Polarity { POL_EVEN_POSITIVE, POL_EVEN_NEGATIVE }; /** Class for interfacing to the MCP3208 SPI-based ADC. * * This class will also allow interfacing to the MCP3204, but only four * inputs are provided by that chip, as opposed to the eight of the MCP3208. */ class MCP3208 { public: MCP3208(SPI bus, PinName cs); ~MCP3208(); /** Read from a single-ended input. * * @param channel The channel number to read from. * * @param returns The sampled value as a float between 0.0 and 1.0. */ float read_input(int channel); /** Read from a pair of differential inputs. * * In differential mode, the channels are referred to as 0 to 3, with * polarity set in a separate parameter. This avoids the user having to set * the polarity as part of the channel number or having channel numbers * increase by two (i.e. the channels being 0, 2, 4, and 6). * * @param channel The channel number to read from. * @param polarity The polarity of the differential signal. * * @param returns The sampled value as a float between 0.0 and 1.0. */ float read_diff_input(int channel, Polarity polarity); private: DigitalOut m_cs; SPI m_bus; void select(); void deselect(); }; #endif