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

DDRC=0xff;
                  DDRB=0xff;
                  DDRD=0xfe;
                  DDRA=0xff;
                  DDRE=0x02;
                  DDRF=0xff;
                  #asm ("sei")

                  EIMSK=0x01;
                  EICRA=0x03;

                  UCSR0A=0x00;
                  UCSR0B=0xd8;
                  UCSR0C=0x06;
                  UBRR0H=0;
                  UBRR0L=103;
              }

              interrupt [TIM0_OVF] void pulse_timer(void)
              {
                  sonic_timer++; //sonic_timer 1당 1us 1cm=58us 박스 전체 크기 24cm
              }


              interrupt [EXT_INT0] void call_TC(void)
              {

                  if(flag==0)
                  {
                      sonic_timer = 0; // 측정된 이전 거리값 초기화
                      TIMSK = 0x01; // Timer Counter 0 Enable
                      TCCR0 = 0x02; // 8ck //0.0625*8분주*116u=58us
                      TCNT0 = 140;    //116us/per count
                      EICRA = 0x02;   //INT0 high_edge interrupt
                      flag = 1;
                  }

                  else //  카운터를  정지시키고 외부 인터럽트(INT0)를 다음에는 Riging  Edge에서 걸리도록 함.
                  {
                      TIMSK = 0x00; // All Timer Disable
                      flag = 0;
                      EICRA = 0x03; //INt0 low_edge interrupt
                  }


              }





                                                         -  618  -
   620   621   622   623   624   625   626   627   628   629   630