Professional Documents
Culture Documents
LAB 3
Handling interrupts on Atmega 32
Objectives
•Learning basics of Proteus
•Introduction to Atmega 32 processor
•Learning basics of Atmel studio
•Learning interrupts of atmega 32 processor
Tools Used
•Proteus 8.0
•Atmel Studio 7.0
BSCS 4-A Burhan Ahmed Satti 01-134172-065
/**
* \mainpage User Application template doxygen documentation
*
* \par Empty user application template
*
* Bare minimum empty user application template
*
* \par Content
*
* -# Include the ASF header files (through asf.h)
* -# "Insert system clock initialization code here" comment
* -# Minimal main function that starts with a call to board_init()
* -# "Insert application code here" comment
*
*/
/*
* Include header files for all drivers that have been imported from
* Atmel Software Framework (ASF).
*/
/*
* Support and FAQ: visit <a href="https://www.microchip.com/support/">Microchip Support</a>
*/
#include <asf.h>
#include <avr/interrupt.h>
board_init();
DDRD = 0x00;
PIND = 0x00;
DDRA = 0xff;
PORTA = 0x00;
sei();
GICR=(1<<INT0);
/* Insert application code here, after the board has been initialized. */
while (1)
{
}
}
ISR(INT0_vect)
{
PORTA ^= 0xff;
}
Result
Conclusion
The Interrupts toggles the LED whenever interrupt is triggered.