BASIC4MCU | 질문게시판 | ATmega128 uart
페이지 정보
작성자 avrdream 작성일2018-12-12 10:55 조회8,017회 댓글1건본문
#include <mega128.h>
#include <delay.h>void main()
{
unsigned char ch;
UCSR0A=0x00;
UCSR0B=0x18;
UCSR0C=0x86;
UBRR0H=0;
UBRR0L=95;
while(1)
{
while(!(UCSR0A & 0x80));
ch=UDR0;
while(!(UCSR0A & 0x20));
UDR0=ch;
}
}
위 코드는 키보드에 입력된 수를 atmega로 송신해서
컴퓨터 화면으로 (터미널) 수신받는 코드인데
터미널입력란에 (터미널은:comport master 입니다)
Hex, 아스키 가 있고 출력란에도 HEX, 아스키가 있습니다
계속 바꾸면서 했는데도
출력은 게속 16진수로 나옵니다 왜그런거죠 ?
예를 들어 1을 누르면 출력 b1 이 나오고
2를 누르면 출력b2가 나옵니다
참고로 출력은 무조건 아스키로 해야되는거같은데
입력은 HEX로 하면 1은 81로 나오고 아스키로하면 b1이 나옵니다
댓글 1
조회수 8,017master님의 댓글
master 작성일
1. 퓨즈비트의 클럭 설정 체크 (클럭이 맞지 않으면 보레이트가 맞지 않습니다.)
2. 보드(모듈 or 키트)의 클럭이 16MHz 아닌지 체크하세요 (소스에서는 14.7456MHz로 보레이트가 설정 되어 있습니다.)
//
키보드 1을 누르면 HEX로 31 이 나와야 정성입니다.
아스키로는 1 이죠