mirror of
https://github.com/RobTillaart/Arduino.git
synced 2024-09-19 16:46:11 -04:00
+ version 0.1.04
+ smaller footprint
This commit is contained in:
parent
411126e5a9
commit
677aaeb463
@ -1,7 +1,7 @@
|
|||||||
//
|
//
|
||||||
// FILE: AnalogPin.cpp
|
// FILE: AnalogPin.cpp
|
||||||
// AUTHOR: Rob Tillaart
|
// AUTHOR: Rob Tillaart
|
||||||
// VERSION: 0.1.02
|
// VERSION: 0.1.04
|
||||||
// DATE: 2014-10-05
|
// DATE: 2014-10-05
|
||||||
// PURPOSE: wrapper class for analogRead
|
// PURPOSE: wrapper class for analogRead
|
||||||
//
|
//
|
||||||
@ -9,22 +9,24 @@
|
|||||||
// 0.1.00 - 2013-09-09 initial version
|
// 0.1.00 - 2013-09-09 initial version
|
||||||
// 0.1.01 - 2013-11-09 added some comments
|
// 0.1.01 - 2013-11-09 added some comments
|
||||||
// 0.1.02 - 2014-10-05 changed signatures datatypes
|
// 0.1.02 - 2014-10-05 changed signatures datatypes
|
||||||
|
// 0.1.03 - 2014-12-07 some refactor
|
||||||
|
// 0.1.04 - 2015-03-06 refactor smaller footprint
|
||||||
//
|
//
|
||||||
// Released to the public domain
|
// Released to the public domain
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "AnalogPin.h"
|
#include "AnalogPin.h"
|
||||||
|
|
||||||
AnalogPin::AnalogPin(uint8_t pin)
|
AnalogPin::AnalogPin(const uint8_t pin)
|
||||||
{
|
{
|
||||||
_pin = pin;
|
_pin = pin;
|
||||||
_prevValue = analogRead(pin);
|
_prevValue = analogRead(pin);
|
||||||
}
|
}
|
||||||
|
|
||||||
int AnalogPin::read(uint8_t noise)
|
int AnalogPin::read(const uint8_t noise)
|
||||||
{
|
{
|
||||||
int value = analogRead(_pin);
|
int value = analogRead(_pin);
|
||||||
if (noise == 0 || abs(value - _prevValue) > noise)
|
if (noise == 0 || ((value - _prevValue) & 0x7FFF) > noise)
|
||||||
{
|
{
|
||||||
_prevValue = value;
|
_prevValue = value;
|
||||||
}
|
}
|
||||||
@ -33,9 +35,12 @@ int AnalogPin::read(uint8_t noise)
|
|||||||
|
|
||||||
int AnalogPin::readSmoothed(uint8_t alpha)
|
int AnalogPin::readSmoothed(uint8_t alpha)
|
||||||
{
|
{
|
||||||
alpha = constrain(alpha, 0, 31);
|
if (alpha > 31) alpha = 31;
|
||||||
int value = analogRead(_pin);
|
int value = analogRead(_pin);
|
||||||
value = (alpha*_prevValue + (32-alpha)*value)/32;
|
if (alpha > 0)
|
||||||
|
{
|
||||||
|
value = value + (alpha * (_prevValue - value)) / 32;
|
||||||
|
}
|
||||||
_prevValue = value;
|
_prevValue = value;
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
//
|
//
|
||||||
// FILE: AnalogPin.h
|
// FILE: AnalogPin.h
|
||||||
// AUTHOR: Rob Tillaart
|
// AUTHOR: Rob Tillaart
|
||||||
// VERSION: 0.1.02
|
// VERSION: 0.1.04
|
||||||
// DATE: 2014-10-05
|
// DATE: 2014-10-05
|
||||||
// PURPOSE: wrapper class for analogRead
|
// PURPOSE: wrapper class for analogRead
|
||||||
// URL:
|
// URL:
|
||||||
@ -18,12 +18,12 @@
|
|||||||
#include "WProgram.h"
|
#include "WProgram.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define ANALOGPIN_LIB_VERSION "0.1.02"
|
#define ANALOGPIN_LIB_VERSION "0.1.04"
|
||||||
|
|
||||||
class AnalogPin
|
class AnalogPin
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
AnalogPin(uint8_t);
|
AnalogPin(const uint8_t);
|
||||||
|
|
||||||
// noise 0..255; in practice 0..4
|
// noise 0..255; in practice 0..4
|
||||||
int read(uint8_t noise = 0);
|
int read(uint8_t noise = 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user