Modifiying variable inside of Interrupt vector. AVR
Folk on avrfreaks.net answered to me

Blockquote
Yup, thought so, you enable COMPA, COMPB and OVF interrupts but only provide ISR() for COMPA. As soon as the other two conditions occur they'll jump to _bad_interrupt and from there &quot;JMP 0&quot; so the AVR keeps &quot;resetting&quot;.

I didnt't provide interrupt handler for interrupts I had enabled. AVR compiler's default action to this situation is reset.
Setup code, where TIMSK2 is responsible for enabling interrupts:
void setup() {
  DDRD = 0xff;
  TCCR2A = (1 &lt;&lt; WGM12);            
  TCCR2B = (1 &lt;&lt; CS22) | (1 &lt;&lt; CS21) | (1 &lt;&lt; CS20); 
  TIMSK2 = 0x07;            // &lt;&lt;&lt;&lt;&lt; Enabling 3 Interrupts vectors
  TCNT2 = 0x00;             
  OCR2A = 250;              
}

Enabling 3 Interrupts vectors, but providing only one handler. That caused AVR to reset.
More about AVR interrputs here