Implements a simple leaky integrator integer value filter, handy for fast, simple, ADC output filtering. Implemented as described here: [[http://ece124web.groups.et.byu.net/references/readings/Simple%20Software%20Lowpass%20Filter.pdf|Simple Software Lowpass Filter.pdf]]

Dependents:   AVC_20110423 WallBot_Simple AVC_2012

SimpleFilter.cpp

Committer:
shimniok
Date:
2011-04-20
Revision:
1:70348515ed2f
Parent:
0:ac15e38daeb5

File content as of revision 1:70348515ed2f:

#include "SimpleFilter.h"

SimpleFilter::SimpleFilter(short shift): _filter_value(0), _shift(shift) {
    // nothing to do here, really
}

short SimpleFilter::filter(short value) {

    _filter_value += (value - (_filter_value >> _shift));
    
    return _filter_value >> _shift;
}

short SimpleFilter::value(void) {
    return _filter_value >> _shift;
}