본문 바로가기

프로테우스/인터럽트

스위치 2개로 LED 제어(인터럽트)


#include 
#include  

unsigned char led = 0xfe;

interrupt [2] void exint0(void)
{ 
    if(led!=0x7f) led = (led << 1) | 0x01; 
    else led = 0xfe; 
    PORTC = led;
    delay_ms(40);
}

interrupt [3] void exint1(void)
{ 
    if (led != 0xfe) led = (led >> 1 ) | 0x80; 
    else led = 0x7f; 
    PORTC = led;
    delay_ms(40);
}

void main(void)
{
    DDRC = 0xff; 
    PORTC = led;
    DDRD = 0x00; 
    SREG.7 = 1; 
    EIMSK |= 0b00000011; 
    EICRA = 3;
    while(1);
}

'프로테우스 > 인터럽트' 카테고리의 다른 글

인터럽트 LED 카운터  (0) 2011.10.04
인터럽트 - 상승엣지  (0) 2011.10.04