PCA9555

Dependents:   Telliskivi2_2014 PowerManagementBoard_Rev_A_2017

Revision:
7:3b54389686ca
Parent:
5:73884f49ed97
Child:
8:8f59b7233e6c
--- a/PCA9555.cpp	Mon Sep 16 16:11:32 2013 +0000
+++ b/PCA9555.cpp	Thu Sep 19 07:06:54 2013 +0000
@@ -25,7 +25,8 @@
     _i2c.write(_address, tx_array, 1);
         
     _i2c.read(_address, rx_array, 2);
-    return (rx_array[1] << 8) | rx_array[0];
+    lastReadState = (rx_array[1] << 8) | rx_array[0];
+    return lastReadState;
 }
  
 void PCA9555::write(int data) {
@@ -64,18 +65,14 @@
 
 bool PCA9555::getPin(unsigned int pinNumber) {
     //return ballState;
-    return (read() & ((unsigned int)1 << pinNumber)) > 0;
+    return (lastReadState & ((unsigned int)1 << pinNumber)) > 0;
 }
 
-void PCA9555::change(void (*function)(void)) { 
+void PCA9555::change(void (*function)(void)) {
     _callbackChange.attach(function);
 }
-/*
-template<typename T>
-void PCA9555::change(T *object, void (T::*member)(void)) { 
-    _callbackChange.attach(object, member); 
-}
-*/
+
 void PCA9555::callChange(void) {
+    read();
     _callbackChange.call();
 }
\ No newline at end of file