ÇÁ·Î±×·¡¹Ö

 3198, 1/160 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   oh88kth
   ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼­¿¡¼­ avr·Î ÇÁ·Î±×·¥Â¥¼­ LED ¼øÂ÷Á¡µîÀä~

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=2939 [º¹»ç]


¿ÞÂÊÀ¸·Î ÇÑ ºñÆ®¾¿ À̵¿Çϸ鼭 ÄÑÁö´Â ¼Ò½ºÀä~

ÀÌ°Ô ¿ÞÂÊÀ¸·Î ºñÆ®°¡ ´Ù À̵¿ÇÏ¸é ´Ù½Ã ÃʱⰪÀ» Á༭ ¹«ÇÑ ·çÇÁ¸¦ µµ´Âµ¥¿ä~

ÃʱⰪÀÌ µÇ±â Àü¿¡ ´Ù½Ã °Å²Ù·Î ¿À¸¥ÂÊÀ¸·Î ÇѺñÆ®¾¿ ¿Å°Ü LED°¡ ¼øÂ÷ Á¡µîÇÏ´Â ¹æ¹ýÀ» ¸ô¶ó¼­¿ä~

¿ÞÂÊÀ¸·Î ¼øÂ÷ Á¡µîÇÏ´Ù°¡ ÃʱⰪÀ¸·Î µ¹¾Æ¿ÀÁö¾Ê°í ¹Ý´ë ¹æÇâÀ¸·Î ¼øÂ÷ Á¡µî ÇÏ¿© ¹«ÇÑ·çÇÁ¸¦ µ¹ ¼Ò½ºÁ»

¹Ø¿¡ ¼Ò½º¿¡¼­ Ãß°¡ÇؾßÇÒ °Í Á» ¾Ë·ÁÁÖ¼¼¿ä~ ¸¶ÀÌÅ©·Î ÇÁ·Î¼¼¼­¸¦ ÷ Á¢ÇغÁ¼­ ÀÌ·¡Àú·¡ ¾î·Æ³×¿ä¤Ð

C ½Ç·Âµµ ÇüÆí¾ø´ÂÁö¶ó... ºÎʵ右´Ï´Ù.


#include<avr/io.h>
#include<avr/interrupt.h>
#include<util/delay.h>

unsigned char Time_STOP=0;

SIGNAL(SIG_INTERRUPT0);

int main()
{
        unsigned char LED_DATA=0x01;

        DDRD=0xFE;
        DDRE=0xFF;
        EICRA=0x0f;
        EICRB=0x00;
        EIFR=0x01;

        sei();
        while(1)
        {
                PORTE=LED_Data;

                if(Time_STOP==0)
                {
                        if(LED_Data==0x80)  LED_Data=0x01;
                        else LED_Data<<=1;
                }
        _delay_ms(100);
        }
        return 0;
}

SIGNAL(SIG_INTERRUPT0)
{
        cli();
        if(Time_STOP==0)
                Time_STOP=1;
        else
                Time_STOP=0;
                sei();
}

  Hit : 10429     Date : 2011/04/06 09:36



    
blueh4g À½? ÀçÀ۳⿡ avr °®°í³î¶§ °°Àº°Å ¸¸µé¾ú¾ú´Âµ¥ ¤»¤»

http://www.youtube.com/blueh4g

http://www.youtube.com/blueh4g#p/u/3/CEcf9l774C4
http://blueh4g.tistory.com/17

Âü°íÇØÁÖ¼¼¿ä ¤»¤µ¤»
2011/04/07  
blueh4g À½.. ±Ùµ¥ Á¦°¡ Çß´ø°Å¶û avr ŰƮ°¡ ´Ù¸¥°Ç°¡º¸³×¿äa

ÀÏ´Ü Áö±ÝÀº Á¦°¡ ŰƮ¸¦ °®°íÀÖÁö ¾ÊÀº »óȲÀ̶ó = ¤µ=;;

¼Ò½º¸¦ ¼öÁ¤Àº ÇØº¸°ÚÁö¸¸, µÇ´ÂÁö ¾ÈµÇ´ÂÁö´Â È®ÀÎÀÌ ¾ÈµÇ³×¿ä... Ȥ½Ã ¾ÈµÇ¸é ¶Ç Áú¹®ÁÖ¼¼¿äa


#include<avr/io.h>
#include<avr/interrupt.h>
#include<util/delay.h>

unsigned char Time_STOP=0;

SIGNAL(SIG_INTERRUPT0);

int main()
{
unsigned char LED_DATA=0x01;
unsigned char direction_sw=0x01;

DDRD=0xFE;
DDRE=0xFF;
EICRA=0x0f;
EICRB=0x00;
EIFR=0x01;

sei();
while(1)
{
PORTE=LED_Data;

if(Time_STOP==0)
{
if(LED_Data==0x80)
direction_sw=0x00;
else if(LED_Data=0x01)
direction_sw=0x01;

if(direction_sw==0x01)
LED_Data<<=1;
else
LED_Data>>=1;

}
_delay_ms(100);
}
return 0;
}

SIGNAL(SIG_INTERRUPT0)
{
cli();
if(Time_STOP==0)
Time_STOP=1;
else
Time_STOP=0;
sei();
}


===============

direction_sw ¶ó´Â°É·Î ¹æÇâÀ» ¼ÂÆÃÇÏ°Ô ÇÏ°í ¿ÞÂÊ ³¡¿¡ µµ´ÞÇϰųª ¿À¸¥ÂÊ ³¡¿¡ µµ´ÞÇϸé ÇØ´ç °ª¸¸ ¹Ù²ãÁÖ°í, ±× ¹Ø¿¡¼­ direction_sw °ª¿¡ µû¶ó ¿ÞÂÊÀ¸·Î ÁøÇàÇÒÁö ¿À¸¥ÂÊÀ¸·Î ÁøÇàÇÒÁö¸¦ ³ª´²³õÀº°Å¿¡¿ä~

´ëÃæ ¸Þ¸ðÀåÀ¸·Î ±Ý¹æ ²ôÀû´í°Å¶ó ¾Æ¸¶ Áß°£¿¡ ¿¡·¯°°Àº°Å ³ª¸é Àû´çÈ÷ °íÃľ²¼¼¿ä;; ¤»¤»
2011/04/07  
yangseungjin if - else ¿¡¼­ else °ªÀ» Ãʱâ·Î µ¹·ÁÁà¾ßÁÒ ±×·±µ¥ À§¿¡¼­´Â <<=1 ·ÎÇØ‡J³×¿ä 2011/04/07  
blueh4g yangseungjin // À½? Á¦ ¼Ò½º¿¡¼­ ¸»Àΰ¡¿ä;? ¹«½¼¾ê±äÁö Á¶±Ý¸¸ ´õ µðÅ×ÀÏÇÏ°Ô ¸»¾¸ÇØÁÖ¼¼¿ä ¤Ð_¤Ð

¾Æ´Ô À§¿¡ oh88kth ´Ô ¼Ò½º¿¡¼­ ¸»¾¸À̽öó¸é

if(LED_Data==0x80) LED_Data=0x01; // ¸¸¾à ³¡±îÁö °¡°ÔµÇ¸é ÃʱâÈ­
else LED_Data<<=1; // ³¡±îÁö ¾È°¬À¸¸é ³¡±îÁö °¥¶§±îÁö ÇÑÄ­¾¿ ÁøÇà

ÀÌ¶ó¼­ ÇÑÂʹæÇâÀ¸·Î¸¸ ¿òÁ÷ÀÌ´Â ¼Ò½º¶ó¸é Àú ¼Ò½º°¡ ¸Â¾Æ¿äa
2011/04/07