PCA9555
Dependents: Telliskivi2_2014 PowerManagementBoard_Rev_A_2017
Diff: PCA9555.cpp
- Revision:
- 7:3b54389686ca
- Parent:
- 5:73884f49ed97
- Child:
- 8:8f59b7233e6c
diff -r 0373a167d58b -r 3b54389686ca PCA9555.cpp --- 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