ExternalIn

Dependents:   Telliskivi2_2014

Revision:
0:7e487b9595e4
Child:
2:6c525c701aad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/externalin.h	Mon Sep 09 17:11:39 2013 +0000
@@ -0,0 +1,31 @@
+#ifndef EXTERNALIN_H
+#define EXTERNALIN_H
+
+#include "mbed.h"
+#include "PCA9555.h"
+
+class ExternalIn {
+protected:
+    FunctionPointer _callbackChange;
+public:
+    ExternalIn(PCA9555 *ioExt, unsigned int pin);
+    bool read();
+    
+    void change(void (*function)(void));
+    
+    template<typename T>
+    void change(T *object, void (T::*member)(void)) { 
+        _callbackChange.attach(object, member); 
+    }   
+    
+private:
+    bool pinState;
+    PCA9555 *extIO;
+    unsigned int inPin;
+    
+    void callChange(void);        
+    
+    void setState(bool newState);
+};
+
+#endif
\ No newline at end of file