Page 538 - 2
P. 538

UBRR1L = 103;        // 통신속도 9600Bps     설정


            UCSR0A = 0x00;
            UCSR0B = 0x18;        //  수신기 송신기,     Enable  설정
            UCSR0C = 0x06;        // 8Bit  데이터 전송 설정
            UBRR0L = 103;        // 통신속도 9600Bps     설정


            while(1)
            {


            // 수신 코드 (   데이터를 받아 변수에 정리해 저장 )


            if(UCSR1A & 0x80){        // 항상 수신
            data = UDR1;         // 통신을 통해 data     변수에 받아
            now = ((data & 0x70) >> 4); //  플래그 추출(000~100)
            if(now != past)
            {
            angle[now] &= 0xf0; // angle  의 하위 4    비트를 And    처리해 하위비트 4       비트를 ' 0000 '    으로 만듬
            angle[now] |= (data & 0x0f);   //data 의 4 비트를 angle   하위 비트에 저장4
            } else {            // 같은 플래그가 두번 들어와            한번은 하위 4     비트에 한번은 상위,         4 비트에 각각 저
            장함
            angle[now] &= 0x0f; // angle  의 상위 4    비트를 And    처리해 상위비트 4       비트를 ' 0000 '    으로 만듬
            angle[now] |= ((data & 0x0f) << 4); //data 의 4 비트를 angle    상위 비트에 저장4
            }
            past = now;     // 같은 플래그면 정보를 2       번을 받기      위함
            }
            /*
            {
            if(flag >= 5)
            {
            flag = 0;
            for(i = 0; i < 45; i++)
            {
            while(!(UCSR0A & 0x20));
            UDR0 = ' ';
            }
            }
            while(!(UCSR0A & 0x20));
            UDR0 = flag + '0';


            while(!(UCSR0A & 0x20));
            UDR0 = '/';


            while(!(UCSR0A & 0x20));
            UDR0 = angle[flag]/1000%10 + '0';


                                                         - 538 -
   533   534   535   536   537   538   539   540   541   542   543