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

PORTD &=  ~0x01;
            }


            ISR(TIMER0_OVF_vect)
            {
                pulse_count++;    //58sec 마다  증가
            }


            ISR(INT0_vect)
            {
                  if(togle  ==  0)      //카운터  시작하고  외부인터럽트(INT0)를  다음에는  falling  Edge에서  걸리도록
            함.
                {
                        pulse_count  =  0;      //측정된  이전  거리값  초기화
                        //  TIMER  COUNTER  RESISTER
                    TIMSK0  =  1<<TOIE0;    //Timer/Counter0  Overflow Interrupt  Enable
                                        //TCNT0 ->  256이 되면  오버플로우가  발생되게  됩니다.
                    TCCR0B =  1<<CS01;    //분주비  8  => 8MHz->1MHz
                        TCNT0 = 256 - 58;   /*TCNT0 한 클럭  당  시간(s  =  1/f) 1/1MHz=1us  필요한  시간  58us
            =>58us/1us=58
                                                      TCNT0에  숫자를  지정해주는  것은  시작하는  지점을  지정해주는  것입니다.
                                        256  -58  =  198부터  TCNT0가  시작되어서  카운터를  하는데  결국  58번  카운터
            된  후  오버플로우가  발생되게  되어서
                                        58us를  센  후  오버플로우가  발생하는  것입니다.*/
                    EICRA =  1<<CS01;    //외부인터럽트  INT0 falling edge에서  인터럽트  발생
                    togle  = 1;
                }
                  else      //카운터를  정지시키고  외부  인터럽트(IN0)를  다음에는  Rising  Edge에서  걸리도록  함.
                {
                    TIMSK0  =  0x00;      //All  Timer  Disable
                    togle  = 0;
                    EICRA =  (1<<CS01)|(1<<CS00);    //외부인터럽트  INT0가  rising  edge에서  인터럽트  발생
                }
            }


            void  main()
            {
                DDRD  =  0x01;    //Dport 0 input  pulse 송신  (출력),  Dport  2  output  pulse  수신  (입력)
                PORTD |=  0x02;    //PORTD  b1  pullup  enable
                  DDRB  =  0x01;      //LED  pin  ->  PB)
                _delay_ms(5);




                                                         -  546  -
   548   549   550   551   552   553   554   555   556   557   558