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

2)  Source  Program



                DDRD  =  0xF0;         //  PA 포트  출력


                tim0_cnt  =  0;        //  타이머/카운터0  오버플로우  횟수  리셋
                mot_pos = 0;        //  모터  위치  0도





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

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

                SREG  |= 0x80;       //  전역  인터럽트  인에이블  비트  I  셋.


                tim0_cnt  =  0;

                PORTD = 0b11000000;       //  모터  High 출력


                    for(i=0;i<1000;i++){
                    if(tim0_cnt >=  2000){    //  10us x 2000  =  20ms 주기  체크
                        tim0_cnt  =  0;

                        PORTD = 0b11000000;   //  모터  High 출력



                    }              //  20ms x 100  =  2sec  각도  변화  주기  체크


                    /*  tim0_cnt가  1이면  10uS이다  54이면  540uS,  mot_pos가 0이면
                      rc_time[mot_pos]가  54  즉

                    0.54mS(540uS)가  된다.  */
                    if(tim0_cnt >=  100)  PORTD  =  0x00;  //  모터  Low  출력
                }

             }








                                                         -  233  -
   235   236   237   238   239   240   241   242   243   244   245