Page 233 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 233
count = 0;
PORTF = count;
while (i <= 5)
{
PORTB.1 = 1; //파괴됬음을 알리는 소리 생성
delay_ms(500);
PORTB.1 = 0;
delay_ms(500);
i++;
}
stoptank = 1;
}
}
void servoMAG()
{
if (flagServo == 1)
{
DDRC = 0xFF; // PC 포트 출력
//tim0_cnt = 0;
// 타이머/카운터0 오버플로우 횟수 리셋
//mot_pos = 0;
// 모터 위치 0도
//change = 0;
// 각도 변화 주기 리셋
// 타이머/카운터 0 인터럽트 주기
// 이론치 (256-238) x 8분주 x 1/16us = 9us, 실측치 약 10us
TIMSK = 0x01; // TOIE0 = '1';
TCCR0 = 0x02; // 일반모드, 프리스케일 = CK/8
TCNT0 = 238; // 타이머/카운터0 레지스터 초기값
SREG |= 0x80; // 전역 인터럽트 인에이블 비트 셋.
PORTC = 0x00; // 모터 High 출력
}
}
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으로 초기화
}
- 226 -