반응형
UBRR
통신 속도를 조절하는 레지스터로 다음과 같은 공식으로 계산한다.
BAUD = fck / 16 ( UBRR + 1)
여기서 BAUD = Baud Rate (BPS)
fck = CPU Clock frequency
UBRRL = UBRR의 내용으로 0 ~ 255 사이의 값을 갖는다.
UBRRH = UBRR의 내용으로 256~1023 사이의 값을 갖는다.
// ATmega2560 clock [Hz] #define FCLK 4000000 // Baud rate #define BAUD 19200 // Calculate the UBRR setting #define UBRR ((long) FCLK/(16*BAUD)-1) // Bit definitions from the USART control registers #define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7 #define FRAMING_ERROR (1<// Define the new putchar function void putchar(char c) { while ((UCSR0A & DATA_REGISTER_EMPTY)==0); UDR0=c; } void Init_Uart0() { // USART0 initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART0 Receiver: Off // USART0 Transmitter: On // USART0 Mode: Asynchronous // USART0 Baud rate: UCSR0A=0x00; UCSR0B=0x08; UCSR0C=0x06; UBRR0H=UBRR >> 8; UBRR0L=UBRR & 0xFF; }
아래 그림이 많이 도움이 됩니다.
반응형
'개발자 > AVR Atmega' 카테고리의 다른 글
Data Acquisition에 관한 여러가지 상식 (0) | 2013.08.08 |
---|---|
Atmega128 이용한 Program 컴파일 (Codevision 컴파일러) (0) | 2012.07.23 |
Window 7 에서 AVR 개발시 CodevisionAvr 은 (0) | 2012.07.13 |
AVR studio 와 WinAVR 관계 알기/설치하기 (0) | 2012.07.11 |
LMC0821A LCD Driver 프로그램 (0) | 2010.07.18 |
Codevision AVR 사용법입니다. (0) | 2010.07.16 |
더욱 좋은 정보를 제공하겠습니다.~ ^^