RunningAverage Class on playground (updated)

Chrismolloy:
I am having overflow errors in visual micro debugger in ms visual studio.

I have 15 instances of RunningAverage sized from 24 to 60.

I am getting random ovf errors on calls to getAverage().

S = savg.getAverage() generates an ovf error at random times.

here is the code

/*
 This code creates a schedule for events every second, minute & hour 
 */

#include <Metro.h> //Include Metro library 

// Create metro objects and set intervals to one second, minute & hour
Metro Second = Metro(1000); //one second
Metro Minute = Metro(2000); //one minute
Metro Hour = Metro(4000); //one hour

#include "RunningAverage.h"

//Create running average objects
RunningAverage Sensor1Seconds(60);
RunningAverage Sensor1Minutes(60);
RunningAverage Sensor1Hours(24);
RunningAverage Sensor2Seconds(60);
RunningAverage Sensor2Minutes(60);
RunningAverage Sensor2Hours(24);
RunningAverage Sensor3Seconds(60);
RunningAverage Sensor3Minutes(60);
RunningAverage Sensor3Hours(24);
RunningAverage Sensor4Seconds(60);
RunningAverage Sensor4Minutes(60);
RunningAverage Sensor4Hours(24);
RunningAverage Sensor5Seconds(60);
RunningAverage Sensor5Minutes(60);
RunningAverage Sensor5Hours(24);


//variables to track time elapsed
int seconds = 0;
int minutes = 0;
int hours = 0;
int led = 13;

void blink()
{
	digitalWrite(led,1);
	int m = millis();
	while(millis() < m+500);
	//for(int n=1;n<100000;n=++n);
	digitalWrite(led,0);
}

void setup()
{
    pinMode(led,OUTPUT);
	blink();
	Sensor1Seconds.clear();
	Sensor1Minutes.clear();
	Sensor1Hours.clear();
	Sensor2Seconds.clear();
	Sensor2Minutes.clear();
	Sensor2Hours.clear();
	Sensor3Seconds.clear();
	Sensor3Minutes.clear();
	Sensor3Hours.clear();
	Sensor4Seconds.clear();
	Sensor4Minutes.clear();
	Sensor4Hours.clear();
	Sensor5Seconds.clear();
	Sensor5Minutes.clear();
	Sensor5Hours.clear();
}

float s1=0;
float s2=0;
float s3=0;
float s4=0;
float s5=0;
float m1=0;
float m2=0;
float m3=0;
float m4=0;
float m5=0;
float h1=0;
float h2=0;
float h3=0;
float h4=0;
float h5=0;
float rn;

void SensorSecondUpdate() {
		rn = random(0, 1000);
        Sensor1Seconds.addValue(rn);
		s1 = Sensor1Seconds.getAverage();
		rn = random(0, 1000);
        Sensor2Seconds.addValue(rn);
		s2 = Sensor2Seconds.getAverage();
		rn = random(0, 1000);
        Sensor3Seconds.addValue(rn);
		s3 = Sensor3Seconds.getAverage();
		rn = random(0, 1000);
        Sensor4Seconds.addValue(rn);
		s4 = Sensor4Seconds.getAverage();
		rn = random(0, 1000);
        Sensor5Seconds.addValue(rn);
		s5 = Sensor5Seconds.getAverage();

}

void SensorMinuteUpdate() {
		float x = Sensor1Seconds.getAverage();
		Sensor1Minutes.addValue(x);
		m1 = Sensor1Minutes.getAverage();
		Sensor1Seconds.clear();
		x = Sensor2Seconds.getAverage();
		Sensor2Minutes.addValue(x);
		m2 = Sensor2Minutes.getAverage();
		Sensor2Seconds.clear();
		x=Sensor3Seconds.getAverage();
		Sensor3Minutes.addValue(x);
		m3 = Sensor3Minutes.getAverage();
		Sensor3Seconds.clear();
		x = Sensor4Seconds.getAverage();
		Sensor4Minutes.addValue(x);
		m4 = Sensor4Minutes.getAverage();
		Sensor4Seconds.clear();
		x=Sensor5Seconds.getAverage();
		Sensor5Minutes.addValue(x);
		m5 = Sensor5Minutes.getAverage();
		Sensor5Seconds.clear();
}

void SensorHourUpdate() {
		float x=Sensor1Minutes.getAverage();
		Sensor1Hours.addValue(x);
		h1 = Sensor1Hours.getAverage();
		x=Sensor2Minutes.getAverage();
		Sensor2Hours.addValue(x);
		h2 = Sensor2Hours.getAverage();
		x=Sensor3Minutes.getAverage();
		Sensor3Hours.addValue(x);
		h3 = Sensor3Hours.getAverage();
		x=Sensor4Minutes.getAverage();
		Sensor4Hours.addValue(x);
		h4 = Sensor4Hours.getAverage();
		x=Sensor5Minutes.getAverage();
		Sensor5Hours.addValue(x);
		h5 = Sensor5Hours.getAverage();
}


void loop()
{

  if (Second.check() == 1) { // check if its been a second
		seconds = ++seconds;
		SensorSecondUpdate();
		blink();
	//put stuff here to do every second
  }

    if (Minute.check() == 1) { // check if its been a minute
		minutes = ++minutes;
		SensorMinuteUpdate();
		//put stuff here to do every minute
  }
	 
	if (Hour.check() == 1) { // check if its been an hour
		hours = ++hours;
		SensorHourUpdate();

		//put stuff here to do every hour
  }

}

moderatore: added code tags - # button above smileys