#include
unsigned char led = 0xfe;
unsigned int cnt;
interrupt [17] void timerint0(void)
{
if(cnt++ >= 9999){ // 10000*1 = 10000 usec
cnt = 0;
if(led!=0x7f) led = (led << 1) | 0x01; // 비트7을 안켰으면 1비트씩 좌로 시프트하고 빈자리에는 1을 채운다.
else led = 0xfe; } // 비트7을 켰으면 다시 처음으로 와서 비트 0을 켠다.
TCNT0 = 240; // 재정의 1usec = 1*(256-240)/16 16MHz와 분주비 1사용시
PORTC = led;
}
void main(void)
{
DDRC = 0xff; // 포트C를 출력으로
PORTC = led;
SREG |= 0x80; //인터럽트 전체 허용
TIMSK |= 1; // 타이머0 오버플로 인터럽트 개별허용
TCCR0 |= 1; // 분주비를 1로 설정
TCNT0 = 240;
while(1);
}