/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.7 beta 5 Standard
Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : 
Version : 
Date    : 09.09.2011
Author  : Pavel                           
Company : F4CG                            
Comments: 


Chip type           : ATmega8
Program type        : Application
Clock frequency     : 8,000000 MHz
Memory model        : Small
External SRAM size  : 0
Data Stack size     : 256
*****************************************************/

#include <mega8.h>
#include <delay.h>

#define led_1 PINC.5 
#define led_2 PINC.4
#define led_3 PINC.3

int s=1;//переменная для задержки 
          
     interrupt [EXT_INT0] void ext_int0_isr(void) //обработка прерываний INT0
     {
        #asm("cli"); //запрещение прерываний на время обработки прерывания
        s=s+1;
        if (s==4) s=1;
        #asm("sei"); //разрешение прерываний
      }
     
    int main(void)
    {
    DDRD = 0x00; //все порты Д на вход
    DDRC = 0xFF; //все порты С выход
     
    GICR=0b11000000; //разрешаем прерывание int0 - кнопка
    MCUCR=0x03; // int by rising front - для кнопки
     
    #asm("sei");//разрешение прерываний
    
    
      
    while(1)//вечный цикл 
    {      
    

    
        if (s==1) 
        {
  
        led_1=1;
        led_2=0;
        led_3=0; // зажгли первый светодиод

        while(s==1)  
		{			
		PORTC.1=1; // подаём сигнал
		delay_ms(95); // и ждём 5 милисек
		PORTC.1=0; // прекращаем сигнал
		delay_ms(5); // и это ВСЁ длиться 100 мс, тоесть частота будет 10 Гц
		}

    }
else  {

        if (s==2) 
        {
        
        led_1=1;
        led_2=1;
        led_3=0; // зажгли второй светодиод

        while(s==2)  
		{	
		PORTC.1=1; // подаём сигнал
		delay_ms(45); // и ждём 5 милисек
		PORTC.1=0; // прекращаем сигнал
		delay_ms(5); // и это ВСЁ длиться 50 мс, тоесть частота будет 20 Гц
		}

    }
else  {
        
        if (s==3)
        {
        
        led_1=1;
        led_2=1;
        led_3=1; // зажгли третий светодиод

        while(s==3)  
		{	
		PORTC.1=1; // подаём сигнал
		delay_ms(20); // и ждём 5 милисек
		PORTC.1=0; // прекращаем сигнал
		delay_ms(5); // и это ВСЁ длиться 25 мс, тоесть частота будет 40 Гц
		} 
	}   
    };

   
    };



    }
 } 