#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "EEPROMex.h"
LiquidCrystal_I2C lcd(0x27,20,4);
double y;
double lastTime;
bool PromWriteOnce = false;
void setup()
{
Serial.begin(115200);
Serial.println("Ready");
lcd.init();
lcd.backlight();
pinMode(8, INPUT);
digitalWrite(8, HIGH);
pinMode(9, INPUT);
digitalWrite(9, HIGH);
pinMode(2, OUTPUT);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
pinMode(3, OUTPUT);
//loads y
fasttime();
lcd.clear();
lcd.print("shorttime: ");
lcd.print(y);
Serial.println(y);
if (isnan(y)){
y =10;
lastTime =10;
}else
lastTime = y;
delay(100);
}
double i = 0;
double a = millis();
double c ;
void loop()
{
if(digitalRead(8) == LOW)
{
lcd.clear();
a = millis();
while(digitalRead(9) == HIGH)
{
c = millis();
i = (c - a) / 1000;
lcd.print(i);
lcd.setCursor(7,0);
lcd.print("Seconds");
lcd.setCursor(0,0);
PromWriteOnce = true;
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
}
if(digitalRead(9) == LOW)
{
while(digitalRead(8) == HIGH)
{
lcd.setCursor(0,0);
lcd.print(i);
if (i<lastTime && PromWriteOnce){
PromWriteOnce = false;
lastTime = i;
EEPROM.updateDouble(0,i);
Serial.print("EEprom:");
Serial.println(fasttime());
}
lcd.setCursor(11,0);
lcd.print("");
lcd.setCursor(0,0);
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
}
}
}
}
double fasttime(){
double fast = EEPROM.readDouble(0);
y=fast;
return fast;
}