ExternalIn

Dependents:   Telliskivi2_2014

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers externalin.h Source File

externalin.h

00001 #ifndef EXTERNALIN_H
00002 #define EXTERNALIN_H
00003 
00004 #include "mbed.h"
00005 #include "PCA9555.h"
00006 
00007 class ExternalIn {
00008 protected:
00009     FunctionPointer _callbackChange;
00010 public:
00011     ExternalIn(PCA9555 *ioExt, unsigned int pin);
00012     ExternalIn(PCA9555 *ioExt, unsigned int pin, bool defaultState);
00013     bool read();
00014     
00015     void change(void (*function)(void));
00016     
00017     template<typename T>
00018     void change(T *object, void (T::*member)(void)) { 
00019         _callbackChange.attach(object, member); 
00020     }   
00021     
00022 private:
00023     bool pinState;
00024     PCA9555 *extIO;
00025     unsigned int inPin;
00026     
00027     void callChange(void);        
00028     
00029     void setState(bool newState);
00030 };
00031 
00032 #endif