Library with PCF8591 support for the experiments for LPC812 MAX
Dependents: lpc812_exp_solution_analog-in lpc812_exp_solution_7-segment lpc812_exp_solution_7-segment-shift lpc812_exp_solution_pwm ... more
Fork of lpc812_exp_lib_PCF8591 by
Diff: PCF8591.h
- Revision:
- 0:4ee0a6513a17
- Child:
- 3:53bf66c0e0f6
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PCF8591.h Thu Nov 14 12:19:26 2013 +0000 @@ -0,0 +1,65 @@ +#ifndef PCF8591_H +#define PCF8591_H + +/** + * Interface to the PCF8591 chip (http://www.nxp.com/documents/data_sheet/PCF8591.pdf) + * which has four 8-bit analog inputs and one 8-bit analog output. + * + * @code + * #include "mbed.h" + * #include "LcdController.h" + * + * PCF8591 pcf; + * + * int main(void) { + * + * while(1) { + * // read analog value (keep trying until valid) + * int val; + * do { + * val = pcf.read(PCF8591::A0); + * wait(0.01); + * } while(val == -1); + * + * // do something with value... + * } + * } + * @endcode + */ +class PCF8591 { +public: + + enum AnalogIn { + A0, + A1, + A2, + A3 + }; + + + /** Create an interface to the PCF8591 chip + * + * + * @param sda the I2C SDA pin + * @param scl the I2C SCL pin + * @param i2cAddr the upper 7 bits of the chip's address + */ + PCF8591(PinName sda = P0_10, PinName scl = P0_11, int i2cAddr = 0x9E); + + /** Reads one value for the specified analog port + * + * @param port the analog in to read (A0..A3) + * + * @returns + * the value on success (0..255) + * -1 on failure + */ + int read(AnalogIn port); + +private: + I2C m_i2c; + int m_addr; +}; + +#endif +