fork of library for MAX14661 16:2 mux

Dependents:   ard2pmod

Fork of max14661 by Maxim Integrated

Revision:
12:f14ce75c0661
Parent:
11:d3971b4fbdd8
--- a/max14661.cpp	Tue Sep 29 23:06:01 2015 +0000
+++ b/max14661.cpp	Tue Mar 29 00:58:54 2016 +0000
@@ -1,22 +1,4 @@
 /******************************************************************//**
-* @file max14661.cpp
-*
-* @author Justin Jordan
-*
-* @version 1.0
-*
-* Started: 11NOV14
-*
-* Updated: 
-* 29SEP15 - added second constructor that uses pointer to I2C bus
-*         - added destructor
-*         - removed redundant comments, see 'DRY' methodology
-*
-* @brief Source file for MAX14661 class
-*
-***********************************************************************
-*
-* @copyright 
 * Copyright (C) 2015 Maxim Integrated Products, Inc., All Rights Reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
@@ -53,37 +35,31 @@
 
 
 //*********************************************************************
-Max14661::Max14661(I2C *i2c_bus, max14661_i2c_adrs_t i2c_adrs): _p_i2c(i2c_bus)
+Max14661::Max14661(PinName sda, PinName scl, max14661_i2c_adrs_t i2c_adrs)
+:_i2c(new I2C(sda, scl)), _i2c_owner(true), _w_adrs(i2c_adrs << 1), _r_adrs((i2c_adrs << 1) | 1)
 {
-    _i2c_owner = false;
-    
-    _r_adrs = ((i2c_adrs << 1) | 1);
-    _w_adrs = (i2c_adrs << 1);
+
 }
 
 
 //*********************************************************************
-Max14661::Max14661(PinName sda, PinName scl, max14661_i2c_adrs_t i2c_adrs)
+Max14661::Max14661(I2C & i2c_bus, max14661_i2c_adrs_t i2c_adrs)
+:_i2c(&i2c_bus), _i2c_owner(false), _w_adrs(i2c_adrs << 1), _r_adrs((i2c_adrs << 1) | 1)
 {
-    _p_i2c = new I2C(sda, scl);
-    _i2c_owner = true;
-    
-    _r_adrs = ((i2c_adrs << 1) | 1);
-    _w_adrs = (i2c_adrs << 1);
 }
 
 
 //*********************************************************************
 Max14661::~Max14661()
 {
-    if(_i2c_owner) 
+    if(_i2c_owner)
     {
-        delete _p_i2c;
+        delete _i2c;
     }
 }
 
 
-/*********************************************************************/
+//*********************************************************************
 uint16_t Max14661::wrt_cmd_registers(max14661_cmds_t cmdA, 
                               max14661_cmds_t cmdB)
 {
@@ -96,13 +72,13 @@
     data[data_length++] = cmdA;
     data[data_length++] = cmdB;
     
-    rtn_val = _p_i2c->write(_w_adrs,(const char*) data, data_length);
+    rtn_val = _i2c->write(_w_adrs,(const char*) data, data_length);
     
     return(rtn_val);
 }
 
 
-/*********************************************************************/
+//*********************************************************************
 uint16_t Max14661::wrt_shadow_registers(uint16_t bankA, uint16_t bankB)
 {
     uint8_t data[5];
@@ -115,13 +91,13 @@
     data[data_length++] = (bankB & 0x00FF);
     data[data_length++] = ((bankB >> 8) & 0x00FF);
     
-    rtn_val = _p_i2c->write(_w_adrs,(const char*) data, data_length);
+    rtn_val = _i2c->write(_w_adrs,(const char*) data, data_length);
     
     return(rtn_val);
 }
 
 
-/*********************************************************************/
+//*********************************************************************
 uint16_t Max14661::wrt_dir_registers(uint16_t bankA, uint16_t bankB)
 {
     uint8_t data[5];
@@ -134,13 +110,13 @@
     data[data_length++] = (bankB & 0x00FF);
     data[data_length++] = ((bankB >> 8) & 0x00FF);
     
-    rtn_val = _p_i2c->write(_w_adrs,(const char*) data, data_length);
+    rtn_val = _i2c->write(_w_adrs,(const char*) data, data_length);
     
     return(rtn_val);
 }
 
 
-/*********************************************************************/
+//*********************************************************************
 uint16_t Max14661::set_switches(uint16_t bankA, uint16_t bankB)
 {
     uint8_t data[7];
@@ -155,42 +131,42 @@
     data[data_length++] = COPY_SHADOW;
     data[data_length++] = COPY_SHADOW;
     
-    rtn_val = _p_i2c->write(_w_adrs,(const char*) data, data_length);
+    rtn_val = _i2c->write(_w_adrs,(const char*) data, data_length);
     
     return(rtn_val);
 }
 
 
-/*********************************************************************/
+//*********************************************************************
 uint16_t Max14661::rd_dir_registers(uint8_t* data)
 {
     uint16_t rtn_val = 1;
     
     data[0] = DIR0;
     
-    rtn_val = _p_i2c->write(_w_adrs,(const char*) data, 1);
+    rtn_val = _i2c->write(_w_adrs,(const char*) data, 1);
     
     if(!rtn_val)
     {
-        rtn_val = _p_i2c->read(_r_adrs,(char*) data, 4);
+        rtn_val = _i2c->read(_r_adrs,(char*) data, 4);
     }
     
     return(rtn_val);
 }
 
 
-/*********************************************************************/ 
+//*********************************************************************  
 uint16_t Max14661::rd_shadow_registers(uint8_t* data)  
 {
     uint16_t rtn_val = 1;
     
     data[0] = SHDW0;
     
-    rtn_val = _p_i2c->write(_w_adrs,(const char*) data, 1);
+    rtn_val = _i2c->write(_w_adrs,(const char*) data, 1);
     
     if(!rtn_val)
     {
-        rtn_val = _p_i2c->read(_r_adrs,(char*) data, 4);
+        rtn_val = _i2c->read(_r_adrs,(char*) data, 4);
     }
     
     return(rtn_val);