Page 756 - 2
P. 756

{


                TCNT0 = 253; //   총 156   번을 세서 약 10us      마다 인터럽트가 발생된다.


                if(is_working)
                {
                    time++; //  약 10us  마다 1  씩 센다.
                }






            }


            interrupt [EXT_INT1] void ext_int1_isr(void) //  센서에서 에코신호가 들어왔을 때의 처리 루틴
            {


                if(is_pulse)
                {
                    is_working = 0; //  타이머 카운터의 카운팅을 종료한다.
                    EICRA = 0b00001100; //   인터럽트 1    을 상승엣지로 바꾸어 준다.
                    is_pulse = 0; //  센서의 에코핀에서 1      이 들어오고 있지 않음을 알린다.
                    is_ended = 1; //  센서의 동작이 종료되었음을 알려준다.
                }
                else
                {
                    is_working = 1; //  타이머 카운터의 카운팅을 시작한다.
                    EICRA = 0b00001000; //   인터럽트 1    을 하강엣지로 바꾸어 준다.
                    is_pulse = 1; //  센서의 에코핀에서 1      이 들어오고 있음을 알린다.
                }






            }




            void function_fnd(void) // fnd  를 키면서 대기하는 함수 동적,          FND   를 사용하기 위한 함수이다.
            {
                for(fndtemp=0; fndtemp<5; fndtemp++)
                {
                    PORTE = ~(0x00 | (1 << fndtemp));
                    PORTB = fnd[height[fndtemp]];
                    if(fndtemp == 2)
                        PORTB = fnd[height[fndtemp]] & (~0x40);
                    intech_delay_us(1);
                }


                                                         - 756 -
   751   752   753   754   755   756   757   758   759   760   761