I kinda fixed it, but it isn't exactly what I wanted.
I wrote new function inside OpenDeck.cpp:
boolean OpenDeckRewrite::getBlinkState() {
if (blinkLedOn[0] || blinkLedOn[1]) return true;
else return false;
}
blink function is modified a bit:
void OpenDeckRewrite::blinkLED(int blinkLED_1, int blinkLED_2) {
int arrayOfBlinkLeds[NUMBER_OF_BLINK_LEDS] = {blinkLED_1, blinkLED_2};
static boolean intState = false;
intState = !intState;
for (int i=0; i<NUMBER_OF_BLINK_LEDS; i++) {
if (blinkLedOn[i]) {
//if the LED is off turn it on and vice-versa
ledState[arrayOfBlinkLeds[i]] = intState;
}
else ledState[arrayOfBlinkLeds[i]] = false;
}
writeLEDs();
}
And finally, the interrupt function:
ISR(TIMER1_COMPA_vect)
{
if (openDeck.getBlinkState())
openDeck.blinkLED(BLINK_LED_1, BLINK_LED_2);
}
What I actually wanted was not to call interrupt function at all until one of the blink LEDs is set on.