반응형
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 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
캐어랩