チャタリング防止できそうなものです。
Dependents: 2019NHK_A_manual_red 2019NHK_A_manual_red 2019NHK_A_manual_blue
chatteringremoval.h@0:443871490643, 2019-08-30 (annotated)
- Committer:
- skouki
- Date:
- Fri Aug 30 06:29:48 2019 +0000
- Revision:
- 0:443871490643
- Child:
- 1:153acc418dd4
v1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
skouki | 0:443871490643 | 1 | #ifndef CHATTERINGREMOVAL_H |
skouki | 0:443871490643 | 2 | #define CHATTERINGREMOVAL_H |
skouki | 0:443871490643 | 3 | |
skouki | 0:443871490643 | 4 | #include"mbed.h" |
skouki | 0:443871490643 | 5 | |
skouki | 0:443871490643 | 6 | /** |
skouki | 0:443871490643 | 7 | * @file IRsensor.h |
skouki | 0:443871490643 | 8 | * @brief GP2Y0A21YK0F(SHARP 2Y0A21)を使ったIR距離測定 |
skouki | 0:443871490643 | 9 | * |
skouki | 0:443871490643 | 10 | * Example : |
skouki | 0:443871490643 | 11 | * @code |
skouki | 0:443871490643 | 12 | * #include "mbed.h" |
skouki | 0:443871490643 | 13 | * #include "chatteringremoval.h" |
skouki | 0:443871490643 | 14 | * |
skouki | 0:443871490643 | 15 | * chatteringremoval button1(USER_BUTTON); |
skouki | 0:443871490643 | 16 | * DigitalOut led1(LED1); |
skouki | 0:443871490643 | 17 | * Serial pc(USBTX,USBRX,115200); |
skouki | 0:443871490643 | 18 | * |
skouki | 0:443871490643 | 19 | * int main() |
skouki | 0:443871490643 | 20 | * { |
skouki | 0:443871490643 | 21 | * button1.setInvalidationtime_ms(100); |
skouki | 0:443871490643 | 22 | * while(true) { |
skouki | 0:443871490643 | 23 | * led1 = button1.getCount() % 2; |
skouki | 0:443871490643 | 24 | * pc.printf("%d",button1.getCount()); |
skouki | 0:443871490643 | 25 | * pc.printf("\n\r"); |
skouki | 0:443871490643 | 26 | * } |
skouki | 0:443871490643 | 27 | * } |
skouki | 0:443871490643 | 28 | * |
skouki | 0:443871490643 | 29 | * @endcode |
skouki | 0:443871490643 | 30 | */ |
skouki | 0:443871490643 | 31 | |
skouki | 0:443871490643 | 32 | /** |
skouki | 0:443871490643 | 33 | * @brief チャタリング防止用のクラス |
skouki | 0:443871490643 | 34 | */ |
skouki | 0:443871490643 | 35 | class chatteringremoval{ |
skouki | 0:443871490643 | 36 | public: |
skouki | 0:443871490643 | 37 | /** |
skouki | 0:443871490643 | 38 | * @brief コンストラクタ |
skouki | 0:443871490643 | 39 | * @param pin Pin that can do Digitalin |
skouki | 0:443871490643 | 40 | */ |
skouki | 0:443871490643 | 41 | chatteringremoval(PinName pin); |
skouki | 0:443871490643 | 42 | |
skouki | 0:443871490643 | 43 | /** |
skouki | 0:443871490643 | 44 | * @brief カウントの値を取得 |
skouki | 0:443871490643 | 45 | * @return count |
skouki | 0:443871490643 | 46 | */ |
skouki | 0:443871490643 | 47 | unsigned int getCount(); |
skouki | 0:443871490643 | 48 | |
skouki | 0:443871490643 | 49 | /** |
skouki | 0:443871490643 | 50 | * @brief チャタリング時間の設定(秒) |
skouki | 0:443871490643 | 51 | * @param Chattering time (seconds) |
skouki | 0:443871490643 | 52 | */ |
skouki | 0:443871490643 | 53 | void setInvalidationtime_s(unsigned int time); |
skouki | 0:443871490643 | 54 | |
skouki | 0:443871490643 | 55 | /** |
skouki | 0:443871490643 | 56 | * @brief チャタリング時間の設定(ミリ秒) |
skouki | 0:443871490643 | 57 | * @param Chattering time (milliseconds) |
skouki | 0:443871490643 | 58 | */ |
skouki | 0:443871490643 | 59 | void setInvalidationtime_ms(unsigned int time); |
skouki | 0:443871490643 | 60 | |
skouki | 0:443871490643 | 61 | /** |
skouki | 0:443871490643 | 62 | * @brief チャタリング時間の設定(マイクロ秒) |
skouki | 0:443871490643 | 63 | * @param Chattering time (microseconds) |
skouki | 0:443871490643 | 64 | */ |
skouki | 0:443871490643 | 65 | void setInvalidationtime_us(unsigned int time); |
skouki | 0:443871490643 | 66 | |
skouki | 0:443871490643 | 67 | /** |
skouki | 0:443871490643 | 68 | * @brief カウントのリセット |
skouki | 0:443871490643 | 69 | */ |
skouki | 0:443871490643 | 70 | void countreset(); |
skouki | 0:443871490643 | 71 | |
skouki | 0:443871490643 | 72 | |
skouki | 0:443871490643 | 73 | private: |
skouki | 0:443871490643 | 74 | void threadloop(); |
skouki | 0:443871490643 | 75 | DigitalIn d_in; |
skouki | 0:443871490643 | 76 | Thread thread; |
skouki | 0:443871490643 | 77 | Timer t; |
skouki | 0:443871490643 | 78 | unsigned int count; |
skouki | 0:443871490643 | 79 | bool flag; |
skouki | 0:443871490643 | 80 | bool _mode; |
skouki | 0:443871490643 | 81 | unsigned long long int _time; |
skouki | 0:443871490643 | 82 | }; |
skouki | 0:443871490643 | 83 | |
skouki | 0:443871490643 | 84 | #endif |