ExternalIn

Dependents:   Telliskivi2_2014

Committer:
Reiko
Date:
Mon Sep 09 17:11:39 2013 +0000
Revision:
0:7e487b9595e4
Child:
2:6c525c701aad
Initial version

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 0:7e487b9595e4 12 bool read();
Reiko 0:7e487b9595e4 13
Reiko 0:7e487b9595e4 14 void change(void (*function)(void));
Reiko 0:7e487b9595e4 15
Reiko 0:7e487b9595e4 16 template<typename T>
Reiko 0:7e487b9595e4 17 void change(T *object, void (T::*member)(void)) {
Reiko 0:7e487b9595e4 18 _callbackChange.attach(object, member);
Reiko 0:7e487b9595e4 19 }
Reiko 0:7e487b9595e4 20
Reiko 0:7e487b9595e4 21 private:
Reiko 0:7e487b9595e4 22 bool pinState;
Reiko 0:7e487b9595e4 23 PCA9555 *extIO;
Reiko 0:7e487b9595e4 24 unsigned int inPin;
Reiko 0:7e487b9595e4 25
Reiko 0:7e487b9595e4 26 void callChange(void);
Reiko 0:7e487b9595e4 27
Reiko 0:7e487b9595e4 28 void setState(bool newState);
Reiko 0:7e487b9595e4 29 };
Reiko 0:7e487b9595e4 30
Reiko 0:7e487b9595e4 31 #endif