This tutorial is about how to use interrupt in AVR Atmega32A microcontroller. Interrupt enhances a use of microcontroller in many different ways. Interrupt is exactly the same as it means in English. Normally we expect a program to keep on executing sequentially in the way we have defined. When interrupt occurs the normal flow of instruction is temporarily suspended and interrupts service routine (ISR) related function or event is executed by program so basically whenever interrupt occurs in our program, we stop current task and handle the event then resume program flow back where we left off.
Interrupt in AVR Atmega32A Microcontroller is either software or hardware. There are in total 21 different interrupt vectors available (for more detail about their address and definition please follow datasheet page no: 43). External interrupts are triggered by INT0, INT1, INT2 pins. In this tutorial will be covering software interrupt. As in our previous post, we have seen timer and counter so let’s write interrupt driven program. In which we will be using 16-bit Timer/Counter1 register.
This is one of classic example to keep tutorial short and simple. Let’s hook up green LED and a current limiting resistor of 330Ω to PB0 pin of microcontroller. In this example, we will generate interrupt to toggle LED after every second. Please follow video for more detail about code.
Circuit Connections: Interrupt in AVR Atmega32A
Source Code: Interrupt in AVR Atmega32A Microcontroller
* Example Project: InteruptTest
* Created: 17-08-2013 13:30:30
* Author: UMESH LOKHANDE
DDRB |= 1<<PINB0;
TCCR1B |= 1<<CS10 | 1<<CS11 | 1<<WGM12;
TIMSK |= 1<<OCIE1A;
OCR1A = 15624;
PORTB ^= 1<<PINB0;