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

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  출력
                 }

            }


            interrupt  [EXT_INT0]  void  external_int0(void)  //적외선  총에  맞았을  시  인터럽트  서비스  루틴
            {

                 PORTG = ~PORTG;


                 count--;                  //count감소
                 BTcount--;                //점수판 어플용  BTcount 감소


                 PORTF =  count;            //FND출력(with  7447)
                 UDR0  =  BTcount;          //점수판  어플에  BTcount  전송


                    delay_ms(1000);                  //1초  동안은  총의  공격을  받지  않도록  설정
                 EIFR  =  0xff;                //인터럽트의  플래그를  모두  0으로  초기화
            }





                                                         -  196  -
   198   199   200   201   202   203   204   205   206   207   208