#include "TimerThree.h"
#include "LiquidCrystal.h"
#include "FreqMeasure.h"

LiquidCrystal lcd(12,11,22,23,24,25);

double sum=0;
int count=0;
float measuredFrequancy;
boolean updateLcd;

char buffer[6];

void setup()
{
	pinMode(13, OUTPUT);
	//pinMode(2,INPUT);
	FreqMeasure.begin();
	Timer3.initialize(1000000);
	Timer3.attachInterrupt(ISR_TMR3);
	lcd.begin(20,2);
	lcd.clear();
	lcd.display();
}

void loop() 
{	
	//fcAvr_RPM();
	lcd.setCursor(0,0);
	
	
	measuredFrequancy=ReadFrequancy();
	
	lcd.print(measuredFrequancy,1);
	lcd.setCursor(0,1);
	lcd.print(FreqMeasure.available());
	
		
	digitalWrite(13,updateLcd);
}

int ReadFrequancy()
{
	if (FreqMeasure.available()) {
		
	// average several reading together
		sum = sum + FreqMeasure.read();
		count = count + 1;
	
		if (count >= 5) {
			return FreqMeasure.countToFrequency(sum / count);
			sum = 0;
			count = 0;
		}
				
	}
	
}

void ISR_TMR3()
{
	updateLcd=!updateLcd;	
}
