DAC controller interface

Dependents:   dac_subsystem dac_controller dac_controller2 dac_controller2

Fork of MCP4725 by Donal Morrissey

Revision:
5:3e6ffce1eea2
Parent:
0:3214e3bbf25c
Child:
6:35e3e80b804c
diff -r e0d667c9b23b -r 3e6ffce1eea2 mcp4725.cpp
--- a/mcp4725.cpp	Sun Nov 03 11:37:55 2013 +0000
+++ b/mcp4725.cpp	Thu Nov 07 19:05:29 2013 +0000
@@ -1,10 +1,8 @@
 #include "mcp4725.h"
 #include "mbed.h"
 
-MCP4725::MCP4725(PinName sda, PinName scl, BusFrequency bus_frequency, int device_address_bits)
+MCP4725::MCP4725(PinName sda, PinName scl, BusFrequency bus_frequency, int device_address_bits): _i2c_interface(sda, scl)
 {
-    _i2c_interface = new I2C(sda, scl);
-    
     //Set the frequency
     int freq=0;
     switch(bus_frequency)
@@ -19,7 +17,7 @@
             freq = 3400000;
             break;
     }
-    _i2c_interface->frequency(freq);
+    _i2c_interface.frequency(freq);
     
     // Assemble the full I2C device address.
     _device_address = 0xC0; // Prime the full device address with the device code.
@@ -32,7 +30,7 @@
     int result;
     
     // Read the raw data from the device.
-    result = _i2c_interface->read(_device_address, data, sizeof(data)/sizeof(*data), false);
+    result = _i2c_interface.read(_device_address, data, sizeof(data)/sizeof(*data), false);
     
     // Parse the raw data, extracting our fields. Refer to MCP4725 ref manual, section 6.2
     if (result == 0)
@@ -76,5 +74,5 @@
     data[2] = (dac_value<<4);
     
     // Now write them to the device.
-    return _i2c_interface->write(_device_address, data, sizeof(data)/sizeof(*data), false);
+    return _i2c_interface.write(_device_address, data, sizeof(data)/sizeof(*data), false);
 }
\ No newline at end of file