飛上

rabe.egloos.com

포토로그



ATXMEGA에서 UART 입력버퍼 확인 함수 by 재동이

UART의 입력버퍼에 데이터가 있는지만 확인하는 함수이다.

0을 return 하면 버퍼가 비어있는 것이고,

1을 return 하면 버퍼에 데이터가 있는 것이다.


이런류의 함수는 프로그램이 입력을 기다리는 중간에도 출력을 하여야 하는 경우에 사용하면 좋다.

예를 들면 ADC의 값을 계속 출력하다가 UART 입력이 들어오면 그에 맞춰 동작하는 경우에 사용할 수 있따.


타이머 인터럽트 방식으로 잘 사용하면 아래의 함수가 필요 없을 수도 있지만 코드의 전체적인

복잡도를 낮추는데는 아래와 같은 함수가 유용하다.

char chk_input_buf(void)
{
    unsigned char status;
    if (((status=USARTC0.STATUS) & USART_RXCIF_bm) == 0)
    {
        return 0;   //buffer empty.
    }else{
        return 1;   //buffer filled.
    }   
}

덧글

댓글 입력 영역