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.
Dependents: Nucleo_MCP3208_Test Nucleo_MCP3208_Ticker_Test BBMv2_eps ref_BBMv2_eps ... more
mcp3208.h
- Committer:
- Kemp
- Date:
- 2011-06-11
- Revision:
- 3:e7de500b1f2d
- Parent:
- 2:93009a423b45
File content as of revision 3:e7de500b1f2d:
/**
* @file mcp3208.h
*/
#include "mbed.h"
#ifndef MCP3208_H
#define MCP3208_H
/** Polarity setting for differential inputs.
*
* POL_EVEN_POSITIVE sets channel [0|2|4|6] as the positive side and channel
* [1|3|5|7] as the negative side. POL_EVEN_NEGATIVE sets the opposite.
*/
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:
/** Create an MCP3208 object.
*
* @param bus An SPI bus object.
* @param cs The name of a pin to use as the chip select.
*/
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