A class for applying hysteresis to a given input. More...
#include <AH/Filters/Hysteresis.hpp>
 Collaboration diagram for Hysteresis< BITS, T_in, T_out >:Public Member Functions | |
| bool | update (T_in inputLevel) | 
| Update the hysteresis output with a new input value.  More... | |
| T_out | getValue () const | 
| Get the current output level.  More... | |
Private Attributes | |
| T_out | prevLevel = 0 | 
Static Private Attributes | |
| constexpr static T_in | margin = (1UL << BITS) - 1 | 
| constexpr static T_in | offset = 1UL << (BITS - 1) | 
| constexpr static T_in | max_in = -1 | 
| constexpr static T_out | max_out = static_cast<T_out>(max_in >> BITS) | 
A class for applying hysteresis to a given input.
This reduces the noise by decreasing the resolution, and it prevents flipping back and forth between two values.
An example for BITS = 7 and an input from 0 to 1023 
| BITS | The number of bits to decrease in resolution. Increasing this number will result in a decrease in fluctuations. | 
Definition at line 36 of file Hysteresis.hpp.
      
  | 
  inline | 
Update the hysteresis output with a new input value.
| inputLevel | The input to calculate the output level from. | 
| true | The output level has changed. | 
| false | The output level is still the same. | 
Definition at line 48 of file Hysteresis.hpp.
      
  | 
  inline | 
Get the current output level.
Definition at line 64 of file Hysteresis.hpp.
      
  | 
  private | 
Definition at line 67 of file Hysteresis.hpp.
      
  | 
  staticconstexprprivate | 
Definition at line 68 of file Hysteresis.hpp.
      
  | 
  staticconstexprprivate | 
Definition at line 69 of file Hysteresis.hpp.
      
  | 
  staticconstexprprivate | 
Definition at line 70 of file Hysteresis.hpp.
      
  | 
  staticconstexprprivate | 
Definition at line 71 of file Hysteresis.hpp.