Yeah, That's what I've used for my timing portion.
I still cannot get the timing right once I push the button. This doesn't work how I want, but if it hasen't been running for 10 seconds yet, it sort of does what I want. haha.
void loop()
{
EVAL = digitalRead(EBUTT);
if(EVAL == HIGH) {
delay(10);
while(millis() < EndTime)
{
digitalWrite(ELED, HIGH);
digitalWrite(FLED, LOW);
}
// Still need to tell it to stay in this state for VIDEO LENGTH
unsigned long FStartTime = millis();
if(FStartTime - Zero > FEndTime)
{
Zero = FStartTime;
if (FSTATE == LOW)
FSTATE = LOW;
else
FSTATE = LOW;
digitalWrite(FLED, FSTATE);
}
}
else
{
unsigned long ECurrentFlashMillis = millis();
if(ECurrentFlashMillis - EPrevFlashMillis > Einterval)
{
EPrevFlashMillis = ECurrentFlashMillis;
if (ESTATE == LOW)
ESTATE = HIGH;
else
ESTATE = LOW;
digitalWrite(ELED, ESTATE);
}
unsigned long FCurrentFlashMillis = millis();
if(FCurrentFlashMillis - FPrevFlashMillis > Finterval)
{
FPrevFlashMillis = FCurrentFlashMillis;
if (FSTATE == LOW)
FSTATE = HIGH;
else
FSTATE = LOW;
digitalWrite(FLED, FSTATE);
}
}
}