본문 바로가기

프로테우스/타이머 / 카운터

PWM을 이용한 LED 밝기제어


#include 

unsigned int step=5;

interrupt [2] void exint0(void)
{ 
    if( OCR0 < 0xff - step ) 
    OCR0 += step;
}

interrupt [3] void exint1(void)
{
    if( OCR0 > step ) 
    OCR0 -=step;
}


void main(void)
{
    DDRB.4 = 1; // PORTB bit 4를 출력으로
    SREG |= 0x80; //인터럽트 전체 허용
    EIMSK |= 0b00000011; // INT0, 1 개별 허용
    EICRA |= 0x0f; // INT0, 1 상승에지 트리거
    TCCR0 |= 6; // 분주비를 256로 설정

    TCCR0 |= 0b01001000; // 타이머0 FAST PWM 모드로 설정
    TCCR0 |= 0x20; // 출력비교모드 설정
    OCR0 = 0x7F;
    for(;;);
}

'프로테우스 > 타이머 / 카운터' 카테고리의 다른 글

500msec 간격이로 LED 이동  (0) 2011.10.04
타이머 LED 점멸 2번째  (0) 2011.10.04
타이머를 이용한 LED  (0) 2011.10.04