Program to interact via the mbed with its I2C interface.
Dependencies: DevInterfaces I2Cinterfaces MCP4725 mbed
Fork of MCP4728test by
main.cpp
- Committer:
- wbeaumont
- Date:
- 2016-01-13
- Revision:
- 0:5bc0f4bd5aa0
- Child:
- 1:d175631a5803
File content as of revision 0:5bc0f4bd5aa0:
#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; }