#include <mega8.h>
#include <delay.h>

volatile unsigned char var;
//unsigned char x;

// Declare your global variables here

// Timer2 overflow interrupt service routine
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{OCR2=var;
PORTD=0x24; // зажигаю цифру 4 и тушу цифру 8

}

// Timer2 output compare interrupt service routine
interrupt [TIM2_COMP] void timer2_comp_isr(void)
{
PORTD=0x18;// зажигаю цифру 8 и тушу цифру 4
}

void main(void)
{
PORTD=0x00;
DDRD=0xFF;
PORTC=0x00;
DDRC=0xFF;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: 187.547 kHz
// Mode: Fast PWM top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x4C;
TCNT2=0x00;
OCR2=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0xC0;
// Global enable interrupts
#asm("sei")

while (1){
//    var=252;
//    delay_ms(1000);
//    var=127;
//    delay_ms(1000);
//    var=3;
//    delay_ms(1000);

      for (var=252;var>=3;var--)
           {
            delay_ms(50);
            };
        delay_ms(1000);
         
        for (var=3;var<=252;var++)
           {
            delay_ms(50);
            };
             
      delay_ms(1000);
      }       
}