Interrupts, are perhaps one of the most important pieces that you need to understand for completing most of your micro-controller projects. Interrupts allow micro-controllers to continue doing their main job and provide mechanism to handle all other tasks which need the CPU attention.

Interrupts can broadly be classified as Hardware and Software Interrupts. In this tutorial we will demonstrate examples of both. Before we go ahead with the examples here, are a few situations where you may want to use these:

  • Let's say you have a device like GSM interfaced to your Micro-controller using UART or other serial interface. You simple do not know when you'll receive a new text message or a call. One way to handle this is continuously monitor for the even to occur. The other way is to configure a serial interrupt. Yes, you guessed it right, this is a Software Interrupt indeed.
  • Now let's say you're building a music player. The main task of the processor is to read and play back the audio file. However the player should be able to play/pause/forward/rewind. And this could happen any time. How about connecting the switches to hardware interrupt pins? The processor will be notified any time the events happen.

Schematic

Schematic AVR Interupt.JPG