Revision:
3:2d28c56053cd
Parent:
2:e09b7dd7c1dd
--- a/MCP4725.cpp	Thu Sep 07 20:12:56 2017 +0000
+++ b/MCP4725.cpp	Fri Sep 08 18:25:52 2017 +0000
@@ -215,7 +215,7 @@
  * @pre         NaN
  * @warning     NaN.
  */
-MCP4725::MCP4725_status_t  MCP4725::MCP4725_SetNewValue   ( MCP4725_write_command_type_t myWriteCMD, uint32_t myDACNewValue )
+MCP4725::MCP4725_status_t  MCP4725::MCP4725_SetNewValue   ( MCP4725_write_command_type_t myWriteCMD, Vector_new_dac_value_t myDACNewValue )
 {
     char        cmd[]             =    { 0, 0, 0 };
     uint32_t    aux               =    0;
@@ -223,19 +223,19 @@
 
 
     // 12-Bit of resolution ONLY!
-    if ( myDACNewValue > 4095 )
+    if ( myDACNewValue.DAC_New_Value > 4095 )
         return  MCP4725_FAILURE;
 
 
     // Prepare the data according to the write mode
-    cmd[1]  |=  ( ( myDACNewValue & 0xFF0 ) >> 4 );
-    cmd[2]  |=  ( ( myDACNewValue & 0x00F ) << 4 );
+    cmd[1]  |=  ( ( myDACNewValue.DAC_New_Value & 0xFF0 ) >> 4 );
+    cmd[2]  |=  ( ( myDACNewValue.DAC_New_Value & 0x00F ) << 4 );
 
     switch ( myWriteCMD ){
         default:
         case FAST_MODE:
-                cmd[0]  |=  ( ( myDACNewValue & 0xF00 ) >> 8 );
-                cmd[1]   =  ( myDACNewValue & 0x0FF );
+                cmd[0]  |=  ( ( myDACNewValue.DAC_New_Value & 0xF00 ) >> 8 );
+                cmd[1]   =  ( myDACNewValue.DAC_New_Value & 0x0FF );
 
                 dataTX   =   2;
                 break;
@@ -300,3 +300,83 @@
     else
        return   MCP4725_FAILURE;
 }
+
+
+
+/**
+ * @brief       MCP4725_GetEEPROM_Data ( Vector_data_t* )
+ *
+ * @details     It gets the eeprom value.
+ *
+ * @param[in]    myEEPROMData:          EEPROM value.
+ *
+ * @param[out]   NaN.
+ *
+ *
+ * @return       Status of MCP4725_GetEEPROM_Data.
+ *
+ *
+ * @author      Manuel Caballero
+ * @date        8/September/2017
+ * @version     8/September/2017   The ORIGIN
+ * @pre         NaN
+ * @warning     NaN.
+ */
+MCP4725::MCP4725_status_t  MCP4725::MCP4725_GetEEPROM_Data  ( Vector_data_t* myEEPROMData )
+{
+    char        cmd[]             =    { 0, 0, 0, 0, 0 };
+    uint32_t    aux               =    0;
+
+    // Read command
+    aux = i2c.read ( MCP4725_Addr, &cmd[0], 5 );
+
+    // Read EEPROM value
+    myEEPROMData->EEPROM_Data =   ( ( cmd[3] & 0x0F ) << 8 ) | ( cmd[4] );
+
+
+
+    if ( aux == I2C_SUCCESS )
+       return   MCP4725_SUCCESS;
+    else
+       return   MCP4725_FAILURE;
+}
+
+
+
+/**
+ * @brief       MCP4725_GetDAC_Data ( Vector_data_t* )
+ *
+ * @details     It gets the DAC value.
+ *
+ * @param[in]    myDACData:             DAC value.
+ *
+ * @param[out]   NaN.
+ *
+ *
+ * @return       Status of MCP4725_GetDAC_Data.
+ *
+ *
+ * @author      Manuel Caballero
+ * @date        8/September/2017
+ * @version     8/September/2017   The ORIGIN
+ * @pre         NaN
+ * @warning     NaN.
+ */
+MCP4725::MCP4725_status_t  MCP4725::MCP4725_GetDAC_Data    ( Vector_data_t* myDACData )
+{
+    char        cmd[]             =    { 0, 0, 0, 0, 0 };
+    uint32_t    aux               =    0;
+
+    // Read command
+    aux = i2c.read ( MCP4725_Addr, &cmd[0], 5 );
+
+    // Read DAC value
+    myDACData->DAC_Data =   ( ( cmd[1] & 0xF0 ) << 4 ) | ( ( ( ( cmd[1] & 0x0F ) >> 4 ) | ( cmd[2] & 0xF0 ) >> 4 ) );
+
+
+
+    if ( aux == I2C_SUCCESS )
+       return   MCP4725_SUCCESS;
+    else
+       return   MCP4725_FAILURE;
+}