Page 161 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 161
}
}
interrupt [EXT_INT0] void external_int0(void)
{
PORTG = ~PORTG;
count--; //count감소
BTcount--;
PORTF = count; //FND출력(with 7447)
UDR0 = BTcount;
delay_ms(1000); //1초 동안은 총의 공격을 받지 않도록 설정
EIFR = 0xff; //인터럽트의 플래그를 모두 0으로 초기화
}
interrupt [EXT_INT1] void mag_interrupt(void)
{
mag = 1; //자기센서의 변화가 발생시
}
interrupt [USART0_RXC] void RX_interrupt(void)
{
rx = UDR0; //블루투스를 통해 APP에서 수신된 값을 rx에 저장
PORTG = ~PORTG;
}
interrupt [TIM0_OVF] void timer_int0(void)
{
tim0_cnt++; // 서보모터의 주기 생성을 위한 변수 증가
TCNT0 = 238; // 타이머/카운터0 초기값 재설정
if(tim0_cnt >= 2000){ // 10us x 2000 = 20ms 주기 체크
tim0_cnt = 0;
PORTC = 0xFF; // 모터 High 출력
change++;
// 20ms x 100 = 2sec 각도 변화 주기 체크
if(change == 100) {
mot_pos = (mot_pos + 1) % 3;
change = 0;
- 154 -