チャタリング防止できそうなものです。
Dependents: 2019NHK_A_manual_red 2019NHK_A_manual_red 2019NHK_A_manual_blue
chatteringremoval.cpp
- Committer:
- skouki
- Date:
- 2019-08-30
- Revision:
- 0:443871490643
- Child:
- 2:866aa77e2fd6
File content as of revision 0:443871490643:
#include"chatteringremoval.h" chatteringremoval::chatteringremoval(PinName pin): d_in(pin) { d_in.mode(PullUp); flag = false; } unsigned int chatteringremoval::getCount() { return count; } void chatteringremoval::setInvalidationtime_s(unsigned int time) { _time = time * 1000 * 1000; thread.start(callback(this, &chatteringremoval::threadloop)); } void chatteringremoval::setInvalidationtime_ms(unsigned int time) { _time = time * 1000 ; thread.start(callback(this, &chatteringremoval::threadloop)); } void chatteringremoval::setInvalidationtime_us(unsigned int time) { _time = time; thread.start(callback(this, &chatteringremoval::threadloop)); } void chatteringremoval::countreset() { count = 0; } void chatteringremoval::threadloop() { while(true){ bool b = d_in.read(); if(!b && !flag){ flag = true; count++; t.reset(); t.start(); } if(t.read_us() >= _time && b){ flag = false; } } }