jak powrócić z powrotem z BLUELIGHT do pętli głównej w takim kodzie:

 void BLUELIGHT(void)
{
    OCR0=175;
    pwm2=175;

}

int main(void)
{
    int a=0;
    int potw=0;
    DDRA |= (1<<PA1);
    DDRC |= (1<<PC0);
    DDRC |= (1<<PC1);
    DDRB |= (1<<PB0);
    DDRB &= ~KEY_PIN;
    PORTB |= KEY_PIN;

    while (1)
    {

            if(KEY_DOWN)
            {
                _delay_ms(25);
                if(KEY_DOWN)
                {
                    a++;
                }
            }
            if(KEY_DOWN2)
            {
                _delay_ms(50);
                if(KEY_DOWN2)
                {

                }
            }
            if(a==1)
            {
                BLUELIGHT();
            }

            if(a==4)
            {
                a=1;
            }

/*

        switch(a)
        {
            case 1:
                BLUELIGHT();
                break;

            case 2:

                break;
            case 3:

                break;
        }

        }
    }

oraz dlaczego jeśli umieszczę dekrementację

if(KEY_DOWN2)
            {
                _delay_ms(50);
                if(KEY_DOWN2)
                {
                                       a--;

                }
            } 

to przestaje mi działać inkrementacja, tak jakby przyciski przestały działać??

wszystkie zegary wejścia i wyjścia są dobrze zadeklarowane i połączone. chodzi tylko i wyłącznie o te dwa motywy.

ps: pętla będzie tak długo działać aż potw będzie równe bądź większe od 1?

while(potw<1)
{
}