ExternalIn

Dependents:   Telliskivi2_2014

Committer:
Reiko
Date:
Sun Nov 03 11:38:18 2013 +0000
Revision:
2:6c525c701aad
Parent:
0:7e487b9595e4
Added constructor with ability to specify initial state

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Reiko 0:7e487b9595e4 1 #ifndef EXTERNALIN_H
Reiko 0:7e487b9595e4 2 #define EXTERNALIN_H
Reiko 0:7e487b9595e4 3
Reiko 0:7e487b9595e4 4 #include "mbed.h"
Reiko 0:7e487b9595e4 5 #include "PCA9555.h"
Reiko 0:7e487b9595e4 6
Reiko 0:7e487b9595e4 7 class ExternalIn {
Reiko 0:7e487b9595e4 8 protected:
Reiko 0:7e487b9595e4 9 FunctionPointer _callbackChange;
Reiko 0:7e487b9595e4 10 public:
Reiko 0:7e487b9595e4 11 ExternalIn(PCA9555 *ioExt, unsigned int pin);
Reiko 2:6c525c701aad 12 ExternalIn(PCA9555 *ioExt, unsigned int pin, bool defaultState);
Reiko 0:7e487b9595e4 13 bool read();
Reiko 0:7e487b9595e4 14
Reiko 0:7e487b9595e4 15 void change(void (*function)(void));
Reiko 0:7e487b9595e4 16
Reiko 0:7e487b9595e4 17 template<typename T>
Reiko 0:7e487b9595e4 18 void change(T *object, void (T::*member)(void)) {
Reiko 0:7e487b9595e4 19 _callbackChange.attach(object, member);
Reiko 0:7e487b9595e4 20 }
Reiko 0:7e487b9595e4 21
Reiko 0:7e487b9595e4 22 private:
Reiko 0:7e487b9595e4 23 bool pinState;
Reiko 0:7e487b9595e4 24 PCA9555 *extIO;
Reiko 0:7e487b9595e4 25 unsigned int inPin;
Reiko 0:7e487b9595e4 26
Reiko 0:7e487b9595e4 27 void callChange(void);
Reiko 0:7e487b9595e4 28
Reiko 0:7e487b9595e4 29 void setState(bool newState);
Reiko 0:7e487b9595e4 30 };
Reiko 0:7e487b9595e4 31
Reiko 0:7e487b9595e4 32 #endif