Page 625 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 625
DDRC=0xff;
DDRB=0xff;
DDRD=0xfe;
DDRA=0xff;
DDRE=0x02;
DDRF=0xff;
#asm ("sei")
EIMSK=0x01;
EICRA=0x03;
UCSR0A=0x00;
UCSR0B=0xd8;
UCSR0C=0x06;
UBRR0H=0;
UBRR0L=103;
}
interrupt [TIM0_OVF] void pulse_timer(void)
{
sonic_timer++; //sonic_timer 1당 1us 1cm=58us 박스 전체 크기 24cm
}
interrupt [EXT_INT0] void call_TC(void)
{
if(flag==0)
{
sonic_timer = 0; // 측정된 이전 거리값 초기화
TIMSK = 0x01; // Timer Counter 0 Enable
TCCR0 = 0x02; // 8ck //0.0625*8분주*116u=58us
TCNT0 = 140; //116us/per count
EICRA = 0x02; //INT0 high_edge interrupt
flag = 1;
}
else // 카운터를 정지시키고 외부 인터럽트(INT0)를 다음에는 Riging Edge에서 걸리도록 함.
{
TIMSK = 0x00; // All Timer Disable
flag = 0;
EICRA = 0x03; //INt0 low_edge interrupt
}
}
- 618 -