UDRn의 올바른 검사방법

2019. 5. 15. 01:04임베디드/ATmega128

ISR(USART0_RX_vect) {
if(!(UDR0 == '\r' || UDR0 == '\n')) {
rxdata = UDR0;
}
}

잘못된 코드의 예이다. UDR0 == '\r'에서 이미 한 바이트를 수신하게 된다 따라서 올바른 rxdata가 들어가지 않는다. 따라서 임시변수에 UDR0을 담고 검사하는 것이 맞는 코드이다

 

char rxdata;
ISR(USART0_RX_vect) {
char tmp = UDR0;
if(tmp != '\r') {
rxdata = tmp;
}
}

'임베디드 > ATmega128' 카테고리의 다른 글

avr 보드와 putty와의 악연  (0) 2019.05.15
avr-gcc 자료형과 크기  (0) 2019.05.15
RS232C와 UART  (0) 2019.05.14
보율과 bps  (0) 2019.05.14
What does PuTTY send when I press Enter key?  (0) 2019.05.14