ExternalIn
externalin.h@2:6c525c701aad, 2013-11-03 (annotated)
- 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?
User | Revision | Line number | New 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 |