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

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;
                    }
                }

            /*  tim0_cnt가  1이면  10uS이다  54이면  540uS,  mot_pos가  0이면  rc_time[mot_pos]가  54  즉
            0.54mS(540uS)가  된다.  */


                if(tim0_cnt  >=  rc_time[mot_pos])
                    PORTC = 0x0;                                 //  모터 Low 출력
            }
            void  end()
            {
                  SREG  =  0x00;
                PORTA =  0;
            }





















                                                         -  227  -
   229   230   231   232   233   234   235   236   237   238   239