BASIC4MCU | 질문게시판 | 답변 : ATmega128A UCSR1A Register 질문
페이지 정보
작성자 master 작성일2023-08-14 20:52 조회1,428회 댓글0건본문
질문 1. ATmega128A에서 UCSR1A Register값을 0b00000000으로 초기화하면
UDR1에 새로운 Data가 없기 때문에 TXC1 Bit의 값이 1, UDR1 데이터가 없어지는 순간에 TXC1=1이 될 수도 있겠죠?
UDRE1 Bit의 초기값이 1이기 때문에 0b00000000에서 0b01100000으로 즉시 변경된다고 이해했는데 맞는지 궁금합니다.
질문 2. ATmega128A에서 Data를 수신 여부를 판단하는 함수 Code를 분석하는데 이해가 가지 않는 부분이 있습니다.
함수
unsigned char serial_receive (void)
{
while (!(UCSR1A & (1 << RXC1)))
{
;
}
return UDR1;
}
에서 Data를 수신하면 UCSR1A의 MSB인 RXC1가 1로 설정되기 때문에 UCSR1A의 값 0b111xxxxx과 0b00000010( = 0b00000001 << 1)이 AND연산(&)한 결과
RXC1 비트는 0b10000000 입니다.
값은 0b111000x0으로써 x값에 의해서 결정되기 때문에 함수 serial_receive ()가 데이터 수신 여부를 판단하는 함수라는것을 이해하지 못했고
어떻게 ATmega128A에서 Data를 수신 여부를 판단하는 함수인지 모르겠습니다.(x는 0 또는 1)
댓글 0
조회수 1,428등록된 댓글이 없습니다.