Program to interact via the mbed with its I2C interface.

Dependencies:   DevInterfaces I2Cinterfaces MCP4725 mbed

Fork of MCP4728test by wimbeaumont Project

Revision:
0:5bc0f4bd5aa0
Child:
1:d175631a5803
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Jan 13 14:15:21 2016 +0000
@@ -0,0 +1,64 @@
+#include "mbed.h"
+
+#if   defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
+  PinName const SDA = PTE25;
+  PinName const SCL = PTE24;
+#elif defined (TARGET_KL05Z)
+  PinName const SDA = PTB4;
+  PinName const SCL = PTB3;
+#elif defined (TARGET_K20D50M)
+  PinName const SDA = PTB1;
+  PinName const SCL = PTB0;
+#else
+  #error TARGET NOT DEFINED
+#endif
+
+
+#include "I2C.h"
+#include "I2CInterface.h" 
+#include "MBEDI2CInterface.h" 
+#include "DACInterface.h" 
+#include "dev_interface_def.h"
+#include "mcp4728.h"
+
+MBEDI2CInterface mbedi2c( SDA, SCL); 
+MBEDI2CInterface* mbedi2cp=  &mbedi2c ;
+I2CInterface* i2cdev= mbedi2cp;
+const float Vdd=5.0;
+
+Serial pc(USBTX, USBRX);
+
+int main(void) {
+  
+   // get the version of getVersion 
+   getVersion gv;
+   printf("getVersion :%s\n\r",gv.getversioninfo());
+   
+   MCP4728  dac( i2cdev ,0, Vdd);  // assuming the address  of the MCP4728 is set to 0 factory default 
+   printf("MCP4728 :%s\n\r",dac.getversioninfo());
+   wait(4);
+   float voltage=0;
+   int cnt=0;
+   while(1){
+           // first set the 4 channels 
+           for ( int cc =0 ; cc <4 ; cc++) { 
+               if ( dac.setDACvalue(cnt,cc) )
+                   printf("failed to set dac value %d for channel %d\n\r",cnt,cc);
+            }
+            printf("set DAC value  to %d result in",cnt);
+               // no else read anyway even if set fails 
+            for ( int cc =0 ; cc <4 ; cc++) { 
+                if ( dac.getVoltage(voltage,cc)) 
+                    printf("\n\rfailed to readback voltage for channel %d\n\r",cc);    
+                else 
+                  printf(" CH%d %f[V]",cc,voltage);
+             }
+             printf("\n\r");
+             cnt++;
+             cnt=cnt % 4096;     
+             wait_ms(200);
+
+  }  
+    // never reach this   
+    return 1;
+}