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

(3) Source Program

            #include  <mega128.h>
            #include  <delay.h>


            unsigned  char  rx  =  0;                      //블루투스를  이용해  APP에서  오는  데이터  수신  변수
            unsigned  char  count  =  5;                //자신의  점수를  표현하기  위한  변수
            unsigned  char  mag  =  0;                    //자기센서의  상태를  확인하기  위한  변수
            unsigned  char  flagServo  =  0;        //서보모터  기능  사용  여부를  위한  변수
            unsigned  char  BTcount  =  0x35;      //블루투스를  이용해  APP으로  점수를  보내기  위한  변수
            unsigned char  stoptank = 0;


            unsigned  int  tim0_cnt  =  0,  mot_pos  =  0,  change  =  0;          //서보모터의  각도  주기  관련  변수
            unsigned  int  rc_time[3]  =  {54,  150,  210};        //  0도,  90도,  180도


            void  BTrecive();                                //블루투스를  이용해  APP에서  오는  데이터를  처리하는  함수
            void  MAGsensor();                              //자기센서의  변화가  생길  시  수행하는  함수
            void  IRsensor();                                //적외선  수신센서가  정해진  수치만큼  공격을  받았을시  수행하는  함수
            void  servoMAG();                                //서보모터  구동을  위한  함수


            void  main()
            {
                    DDRA  =  0xff;                              //PA는  모터  조정을  위해
                 DDRB  =  0xff;                    //
                 DDRC  =  0xff;
                 DDRF  =  0xff;
                 DDRG  =  0xff;
                    //PA,  B,  C,  F,  G를  출력으로  설정


                    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비트로




                                                         -  149  -
   151   152   153   154   155   156   157   158   159   160   161