I wrote a simple code on using external interrupt INT0; however, the chip responds for the first interrupt signal only. In short, I would like to know how can I make the chips respond to each interrupt signal?
The interrupt is only disabled while you are inside the interrupt (recursive interrupts are disabled by default).
I don't see a main loop in your code, you have to use at least a while(1); to prevent the execution from exiting the main function;
I have never used the sleep modes so I can't help much but using sleep like this in an endless loop without any condition or delay doesn't seem correct.
ahmed_mahmoud, as alexan_e said, put while(1){} inside main(). Like this
Main(){
.
.
.
.
while(1){
.
.
.
.
Sleep();
} // end while(1) loop
} // end main
NOTE: If you use WDT then Clear WTD bit before go into Sleep mode. Before go into sleep mode, clear necessary interrupt flags and enable all required interrupts. Then only interrupts will be fired when wake-up from the sleep.