#include <stdio.h>
#include<avr/interrupt.h>
#include <avr/io.h>
#include <util/delay.h>
char i=0,j=0,k=0,l=0,data=0;
char A[40]=" ";
char B[40]=" ";
char C[5]=" ";
ISR(TIMER0_OVF_vect){
data=0;
i=40;
if(j>20)k=j;
j=0;
}
ISR(INT0_vect){
if(i==10)data=1;
j++;
if(i==40)l=TCNT0;
if(TCNT0>100)A[i--]=1;
else A[i--]=0;
TCNT0=0;
}
int main(void){
DDRA=255;
enable_INT0(2);
set_timer0_normal();
set_timer0_prescalar(3);
enable_timer0_overflowint();
sei();
while(1){
while(data){
C[1]=(A[16]<<7)+(A[17]<<6)+(A[18]<<5)+(A[19]<<4)+(A[20]<<3)+(A[21]<<2)+(A[22]<<1)+(A[23]<<0);
if(C[1]==1)PORTA^= 1 << 0;
if(C[1]==2)PORTA^= 1 << 1;
if(C[1]==3)PORTA^= 1 << 2;
if(C[1]==4)PORTA^= 1 << 3;
C[1]=0;
_delay_ms(50);
data=0;
}
}
return 0;
}