Page 160 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 160
void MAGsensor()
{
unsigned char i = 1; //경보음 발생을 위한 변수 선언
if (mag == 1)
{
EIMSK = 0b00000000; //위에 조건 만족시 모든 인터럽트 차단
TIMSK = 0b00000000;
SREG |= 0x00;
while (i <= 5)
{
PORTB.1 = 1; //파괴됬음을 알리는 소리 생성
delay_ms(500);
PORTB.1 = 0;
delay_ms(500);
i++;
}
stoptank = 1;
}
}
void servoMAG()
{
if (flagServo == 1)
{
//unsigned char i = 0;
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; // 전역 인터럽트 인에이블 비트 I 셋.
PORTC = 0x00; // 모터 High 출력
- 153 -