Mutila: Mouse's Utilities for Arduino
Oft-used utilities: debouncing buttons, averaging samples, and so on.
QuantizedPot.h
1 #pragma once
2 
3 #include <stdint.h>
4 #include <AbstractDebouncedButton.h>
5 #include "NumericRange.h"
6 
10 class QuantizedPot {
11 public:
17  QuantizedPot(const uint8_t pin, int8_t maxRanges);
18 
23  ~QuantizedPot();
24 
32  int8_t addRange(int start, int end);
33 
39  void begin(uint8_t threshold=AbstractDebouncedButton::DefaultThreshold, uint8_t delay=AbstractDebouncedButton::DefaultButtonDelay);
40 
45  void update();
46 
53  int8_t value();
54 
59  int velocity() { return _velocity; }
60 
61 protected:
62  const uint8_t _pin;
63  int8_t _rangeMax;
64  int8_t _rangeCount;
65  NumericRange<int>** _ranges;
66  uint8_t _threshold;
67  uint8_t _delay;
68  uint32_t _lastUpdate;
69  uint8_t _counter;
70  int8_t _state;
71  uint32_t _lastStateChange;
72  int _lastRaw;
73  int _velocity;
74 
79  int8_t _value();
80  void setState(int8_t newState);
81 
82 };
83 
int8_t _value()
int8_t addRange(int start, int end)
QuantizedPot(const uint8_t pin, int8_t maxRanges)
Definition: QuantizedPot.cpp:7
int velocity()
Definition: QuantizedPot.h:59
int8_t value()
void begin(uint8_t threshold=AbstractDebouncedButton::DefaultThreshold, uint8_t delay=AbstractDebouncedButton::DefaultButtonDelay)