#include <avr/io.h>
#include <avr/interrupt.h>
unsigned int i;
int sel; //ÀÎÅÍ·´Æ®ÇÒ¶§ ÀÌ °ªÀ» ¹Ù²Ù¾î¼ Á¶Á¾ ÇÏ·Á±¸ÇÕ´Ï´Ù
int main()
{
DDRA = 0xFF; //LED¸¦ 8°³ ¸ðµÎ»ç¿ë
PORTA = 0x01; //ù¹ø° led Á¡µî
EICRA = 0b00001011; //¿ÜºÎÀÎÅÍ·´Æ®¼³Á¤
EIMSK = 0b00000011; //¿ÜºÎÀÎÅÍ·´Æ®¼³Á¤
sei();
while(1)
{
while(PORTA != 0b00000000) // ¿ÞÂÊÀ¸·Î ½ÃÇÁÆ®°¡ ¸ðµÎ ³¡³ª¸é ¿ÍÀϹ®À» ºüÁ®³ª¿À±â À§Çؼ
{
for(i = 0; i < 0xFFFF; i++); //½ÃÇÁÆ®
PORTA = PORTA << 1;
}
PORTA = 0b10000000; //ºüÁ®³ª¿À¸é °¡Àå ¿ÞÂÊ ledÁ¡µî
while(PORTA != 0b00000000) // ¿À¸¥ÂÊÀ¸·Î ½ÃÇÁÆ®°¡ ¸ðµÎ ³¡³ª¸é ¿ÍÀϹ®À» ºüÁ®³ª¿À±â À§Çؼ
{
for(i = 0; i < 0xFFFF; i++); //½ÃÇÁÆ®
PORTA = PORTA >> 1;
}
PORTA = 0b00000001; //ºüÁ®³ª¿À¸é °¡Àå ¿À¸¥ÂÊ led Á¡µî
}
}
ISR(INT0_vect) //ù¹ø° ½ºÀ§Ä¡¸¦ ´©¸£¸é ½¬ÇÁÆ®¸¦ ±× ÀÚ¸®¿¡ Á¤Áö
{
while(sel != 1) //sel=1°¡ µÇ¸é ¿ÍÀϹ®À» ºüÁ®³ª¿Â´Ù, ±×·¸Áö¾ÊÀ¸¸é ¾Æ·¡¸¦ ¹Ýº¹
{
for(i=0; i<0xFF; i++);
PORTA = PORTA; //Á¤Áö!
}
main();
}
ISR(INT1_vect) //µÎ¹ø° ½ºÀ§Ä¡¸¦ ´©¸£¸é ¸®¼Â
{
sel++; //selÀ» Áõ°¡½ÃŲ´Ù
if(sel>2) sel=0; //¸¸¾à 1º¸´Ù Ä¿Áö¸é 0À¸·Î ¸¸µç´Ù.
main();
}
ÀÌ·¸°Ô Àû±äÇߴµ¥ ÇÏ·Á´Â°Ç ±×³É led 8°³¹Ú¾Æ³õÀº°É ¿Ô´Ù°¬´Ù ½ÃÅ°¸é¼
½ºÀ§Ä¡ 1´©¸£¸é ÀÎÅÍ·´Æ® ¹ß»ýÇؼ Á¤Áö! 2´©¸£¸é ¸®¼Â! ÀÌ°Å ÇÏ·Á´Â°Çµ¥¿ä
¹¹¸¦ À߸øÇÑ°ÇÁö 2¹ø¸ÕÀú ´©¸£¸é ¸®¼ÂµµµÇ°í 1¹ø´©¸£¸é Á¤ÁöµµµÇ´Âµ¥
Á¤ÁöµÈ »óÅ¿¡¼± ¸®¼ÂÀÌ ¾ÈµÇ³×¿ä ¤Ì¤Ì ÀÎÅÍ·´Æ®¿¡ ÀÎÅÍ·´Æ®¸¦ ¸ø½ÃÅ°´Â°Ç°¡¿ä
while¹®¿¡ °¤Çô¼ ¸ø³ª¿À´Â°Ç°¡ À̸®Àú¸® ±¼·ÁºÁµµ ¾È³ª¿À³×¿ä
ÄÚµå ¾îµð°¡ À߸øµÈ°É±î¿ä.. Å©ÀÀ
Àâ´ã | 1396¸íÀÌ Àоú¾î¿ä. 3.140.198.29