Page 198 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 198

void  main()

            {
                 DDRA  =  0xff;                    //PA는 모터  조정을  위해  사용
                 DDRB  =  0xff;                    //PB는 적외선  총,  탱크  파괴  여부  확인  LED, 부저를  위해  사용
                 DDRF  =  0xff;                    //PF는  FND  표시를  위해  사용

                    DDRG  =  0xff;                              //PG는  모든  인터럽트  동작확인과  서보모터를  위해  사용

                 EIMSK  = 0b00000011;     //외부  인터럽트(INT0, INT1)허용
                    EICRA  =  0b00001010;        //INT0가  하강  엣지가  입력될  때  실행되는  것으로  설정


                    //  타이머/카운터  0  인터럽트  주기
                 //  이론치  (256-238) x  8분주  x 1/16us  =  9us, 실측치 약 10us
                 TIMSK = 0x01;         //  TOIE0  =  '1';

                 TCCR0  =  0x02;         //  일반모드, 프리스케일  = CK/8
                 TCNT0  =  238;           //  타이머/카운터0  레지스터  초기값

                 UCSR0A  =  0x00;

                    UCSR0B  =  0b10011000;              //수신  인터럽트  허용,  수송신  기능  인에이블
                 UCSR0C  =  0b00000110;         //전송  데이터를  8비트로
                 UBRR0H  =  0;
                 UBRR0L  =  103;               //BAUD  RATE(보율)을  9600으로  맞춤(BT와  AVR의  통신  속도를  맞춤)


                 SREG  |=  0x80;                   //모든  인터럽트  허용

                 PORTF =  count;                  //FND에  점수 출력(with  7447)

                 UDR0  =  BTcount;                //블루투스를  이용해  APP으로  전송해줌

                 while  (1)
                 {

                       PORTB.2  =  1;

                       BTrecive();                 //BlueTooth  통신 함수
                       servoMAG();                 //서보모터  가동  함수

                       IRsensor();                 //적외선  총  맞은  횟수  확인  함수
                       MAGsensor();               //자기센서  확인  함수






                                                         -  191  -
   193   194   195   196   197   198   199   200   201   202   203