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 EmbeddedArtists AB

Revision:
0:4ee0a6513a17
Child:
1:7eabc2242b8f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PCF8591.cpp	Thu Nov 14 12:19:26 2013 +0000
@@ -0,0 +1,25 @@
+#include "mbed.h"
+#include "PCF8591.h"
+
+PCF8591::PCF8591(PinName sda, PinName scl, int i2cAddr) : m_i2c(sda, scl)
+{
+    m_addr = i2cAddr;
+}
+    
+int PCF8591::read(AnalogIn port)
+{
+    char cmd = port & 0x3; // read from selcted port
+    char val[2] = { 0, 0 };
+    
+    // select the port
+    m_i2c.write(m_addr, &cmd, 1, true);
+    
+    // get the sample
+    if (m_i2c.read(m_addr, val, 2) == 0) {
+        // val[0] is conversion result code from last time (always 0x80)
+        // val[1] is the new value
+        return val[1];
+    }
+    return -1;
+}
+