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

#define DATA_REGISTER_EMPTY (1<<UDRE)

            #define RX_COMPLETE (1<<RXC)


            unsigned char rx;



            // USART0 Receiver buffer

            #define RX_BUFFER_SIZE0 8
            char rx_buffer0[RX_BUFFER_SIZE0];



            #if RX_BUFFER_SIZE0<256

            unsigned char rx_wr_index0,rx_rd_index0,rx_counter0;

            #else
            unsigned int rx_wr_index0,rx_rd_index0,rx_counter0;

            #endif



            // This flag is set on USART0 Receiver buffer overflow

            bit rx_buffer_overflow0;



            // USART0 Receiver interrupt service routine
            interrupt [USART0_RXC] void usart0_rx_isr(void)

            {

            char status,data;
            status=UCSR0A;

            data=UDR0;
            if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)

               {

               rx_buffer0[rx_wr_index0]=data;
               if (++rx_wr_index0 == RX_BUFFER_SIZE0) rx_wr_index0=0;

               if (++rx_counter0 == RX_BUFFER_SIZE0)
                  {

                  rx_counter0=0;






                                                         -  838  -
   840   841   842   843   844   845   846   847   848   849   850