Skip to content

Commit b89c9de

Browse files
committed
+ version 0.2.05
+ changed float to double (for ARM platform)
1 parent baa7e04 commit b89c9de

File tree

2 files changed

+20
-16
lines changed

2 files changed

+20
-16
lines changed

libraries/RunningAverage/RunningAverage.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
//
22
// FILE: RunningAverage.cpp
33
// AUTHOR: Rob Tillaart
4-
// VERSION: 0.2.04
4+
// VERSION: 0.2.05
5+
// DATE: 2014-dec-16
56
// PURPOSE: RunningAverage library for Arduino
67
//
78
// The library stores the last N individual values in a circular buffer,
@@ -16,6 +17,7 @@
1617
// 0.2.02 - 2012-12-30 refactored trimValue -> fillValue
1718
// 0.2.03 - 2013-11-31 getElement
1819
// 0.2.04 - 2014-07-03 added memory protection
20+
// 0.2.05 - 2014-12-16 changed float -> double
1921
//
2022
// Released to the public domain
2123
//
@@ -26,7 +28,7 @@
2628
RunningAverage::RunningAverage(int n)
2729
{
2830
_size = n;
29-
_ar = (float*) malloc(_size * sizeof(float));
31+
_ar = (double*) malloc(_size * sizeof(double));
3032
if (_ar == NULL) _size = 0;
3133
clear();
3234
}
@@ -46,7 +48,7 @@ void RunningAverage::clear()
4648
}
4749

4850
// adds a new value to the data-set
49-
void RunningAverage::addValue(float f)
51+
void RunningAverage::addValue(double f)
5052
{
5153
if (_ar == NULL) return;
5254
_sum -= _ar[_idx];
@@ -58,14 +60,14 @@ void RunningAverage::addValue(float f)
5860
}
5961

6062
// returns the average of the data-set added sofar
61-
float RunningAverage::getAverage()
63+
double RunningAverage::getAverage()
6264
{
6365
if (_cnt == 0) return NAN;
6466
return _sum / _cnt;
6567
}
6668

6769
// returns the value of an element if exist, 0 otherwise
68-
float RunningAverage::getElement(uint8_t idx)
70+
double RunningAverage::getElement(uint8_t idx)
6971
{
7072
if (idx >=_cnt ) return NAN;
7173
return _ar[idx];
@@ -74,7 +76,7 @@ float RunningAverage::getElement(uint8_t idx)
7476
// fill the average with a value
7577
// the param number determines how often value is added (weight)
7678
// number should preferably be between 1 and size
77-
void RunningAverage::fillValue(float value, int number)
79+
void RunningAverage::fillValue(double value, int number)
7880
{
7981
clear();
8082
for (int i = 0; i < number; i++)

libraries/RunningAverage/RunningAverage.h

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
1-
#ifndef RunningAverage_h
2-
#define RunningAverage_h
31
//
42
// FILE: RunningAverage.h
53
// AUTHOR: Rob dot Tillaart at gmail dot com
4+
// VERSION: 0.2.05
5+
// DATE: 2014-dec-16
66
// PURPOSE: RunningAverage library for Arduino
77
// URL: http://arduino.cc/playground/Main/RunningAverage
88
// HISTORY: See RunningAverage.cpp
99
//
1010
// Released to the public domain
1111
//
12-
1312
// backwards compatibility
1413
// clr() clear()
1514
// add(x) addValue(x)
1615
// avg() getAverage()
1716

18-
#define RUNNINGAVERAGE_LIB_VERSION "0.2.04"
17+
#ifndef RunningAverage_h
18+
#define RunningAverage_h
19+
20+
#define RUNNINGAVERAGE_LIB_VERSION "0.2.05"
1921

2022
#include "Arduino.h"
2123

@@ -27,21 +29,21 @@ class RunningAverage
2729
~RunningAverage();
2830

2931
void clear();
30-
void addValue(float);
31-
void fillValue(float, int);
32+
void addValue(double);
33+
void fillValue(double, int);
3234

33-
float getAverage();
35+
double getAverage();
3436

35-
float getElement(uint8_t idx);
37+
double getElement(uint8_t idx);
3638
uint8_t getSize() { return _size; }
3739
uint8_t getCount() { return _cnt; }
3840

3941
protected:
4042
uint8_t _size;
4143
uint8_t _cnt;
4244
uint8_t _idx;
43-
float _sum;
44-
float * _ar;
45+
double _sum;
46+
double * _ar;
4547
};
4648

4749
#endif

0 commit comments

Comments
 (0)