test publish
Dependencies: BLE_API nRF51822 mbed
Fork of KS7 by
Diff: exio.h
- Branch:
- KS3
- Revision:
- 33:d7b53d548c33
- Parent:
- 31:b5e19d153db4
--- a/exio.h Mon Aug 01 08:58:31 2016 +0000 +++ b/exio.h Wed Aug 10 06:56:36 2016 +0000 @@ -51,6 +51,14 @@ _cnt = 0; } } + /*void display_unitT(void) + { + // 単位T表示 + _row_out[6] |= (0x10 + 0x20 + 0x40); + _row_out[7] |= (0x01 + 0x08 + 0x40); + _cnt = 0; + }*/ +protected: /*100msec処理*/ virtual void TickerCallback(void) { @@ -68,17 +76,22 @@ if(_counter >= 10){ /*1sec*/ _swState = LongPressed; //printf("LongPressed\r\n"); - } else { + } else { _swState = Pressed; //printf("Pressed\r\n"); } } } else { _counter++; + // スイッチ押された状態で1sec経過したらコールバック + if(_swFlag && _counter >= 10 && !_callFlag){ + _callback.call(); + _callFlag = true; // 1回コールすれば用済み + } } _lastSW = sw; #ifdef UART_DEBUG - //pc.printf("*"); + //pc.printf("%d", sw); #endif } @@ -86,6 +99,7 @@ /*コンストラクタ*/ exio() : io(P0_15, P0_13) { + _callFlag = false; _cnt = 0; _swFlag = false; _swState = None; @@ -139,6 +153,20 @@ #endif } + void attach(void (*func)(void)) + { + _callback.attach(func); + } + /*template<typename T> + void attach(T *obj, void (T::*member)(void)) + { + _callback.attach(obj, member); + }*/ + void CallFlagClear() + { + _callFlag = false; + } + private: bool _swFlag; Switch_t _swState; @@ -146,6 +174,8 @@ Ticker _ticker; int _counter; int _cnt; + FunctionPointer _callback; + bool _callFlag; };