ISR(TIMER2_OVF_vect)
{
if((millis() >= Bk_Light) && bitRead(PIND, 5)) PORTD &= ~(1<<5);//Turn BackLight Off
if(MLU_Time && (millis() >= MLU_Time)) MirrorLockUp();//Press Shutter to enable Mirror LockUp if 30s have passed since last Mirror LockUp
}
or
ISR(TIMER2_OVF_vect)
{
if(bitRead(PIND, 5))
{
if((millis() >= Bk_Light)) PORTD &= ~(1<<5);//Turn BackLight Off
}
if(MLU_Time)
{
if(millis() >= MLU_Time) MirrorLockUp();//Press Shutter to enable Mirror LockUp if 30s have passed since last Mirror LockUp
}
}
or
ISR(TIMER2_OVF_vect)
{
if(bitRead(PIND, 5))
{
if((millis() >= Bk_Light)) PORTD &= ~(1<<5);//Turn BackLight Off
}
if(MLU_Time) MirrorLockUp();//Press Shutter to enable Mirror LockUp if 30s have passed since last Mirror LockUp
}
void MirrorLockUp(byte AutoActivate = 0)
{
//for the third case the line below becomes if(ROM_VAL[ROM_MLU].Value && (millis() >= MLU_Time))
if(ROM_VAL[ROM_MLU].Value)
{
PORTB |= (1<<1);//Shutter 1 On
delay(50);//Wait ROM_VAL[ROM_BtnDelay].Value
PORTB &= ~(1<<1);//Shutter 1 Off
if(AutoActivate)
MLU_Time = millis() + ROM_VAL[ROM_MLU_WakeUp].Value*1000;//Press Shutter to enable Mirror LockUp if ns have passed since last Mirror LockUp
else
MLU_Time = 0;
delay(ROM_VAL[ROM_MLU_Delay].Value);//Wait for vibrations to end
}
else
MLU_Time = 0;
}