블로그 이미지
권남

카테고리

분류 전체보기 (227)
Temp (1)
CA (0)
Game (0)
nGrinder (0)
Java (17)
JavaScript (1)
JBOSS (0)
EJBCA (0)
Tomcat (1)
DB (6)
Cache (6)
LINUX (4)
Frameworks (11)
C++ (32)
C (96)
Mosquitto (3)
STB (0)
JNI (10)
Android (5)
WebSocket (1)
PDF (0)
AVR (13)
LINUX Device Driver (8)
Arduino (4)
ekgu (0)
resume, portfolio (1)
Dynamics AX (X++) (4)
comp (0)
Total
Today
Yesterday

달력

« » 2025.5
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

공지사항

최근에 올라온 글

exUART

AVR / 2015. 4. 14. 12:21

#include <avr/io.h>

#include <util/delay.h>


void sendByte(int data);

void readByte(void);

void setup(void);


int main(void)

{

setup();

// 데이타 레지스터에 보낼 데이타를 저장한다.

char txData[] = "Hello World";

int i = 0;

unsigned int recvData = 0;


//UDR0 = "Hello World" (X) // rx, tx 8bit 씩. 한개씩 넣어줘야한다.

for (i = 0; i < 15; ++i)

{

sendByte(txData[i]);

}


while(1) 

{

// pc에서 1byte 데이타를 받는다.

// UDR0에 테이타가 수신되었는지 확인한다.


while( (UCSR0A & 0x80) == 0 )// RXCn <- 1된 상태 확인

;

//UDR0에서 데이타를 가져온다.

recvData = UDR0;

// 다시 데이타를 받을 준비를 한다.

UCSR0A != 0x80;


// 받은 데이타를 보낸다.

sendByte( recvData );

}

return 0;

}


void sendByte(int data)

{


while((UCSR0A & 0x20) == 0)

; //UCSR0A = 0x20;

//<- UDREn(xx10 =xx 1로 설정되었는지 본다.즉, UDR0가 비어있는 확인한다.

UDR0 = data;

UCSR0A |= 0x20;


}


void readByte(void)

{

}

void setup(void)

{

DDRE = 0xFD; // rx -> pe0 input 0000 0000

// tx -> p4 1`output 000 0010 


UCSR0A = 0x00; // 다 안쓰니까 무시. 0으로.

UCSR0B = 0x18; //<- TXEn 설정 데이타 송신합니다. (xxxx 1xxx)

//<- UCSZn2 데이타 8bit 전송으로 (xxxx x0xx)으로 설정

UCSR0C = 0x06; //<- 비동기 (0xxx xxxx)

// No parity (xx00 xxx)

// 데이타 전송 8bit (xxxx x11x)

// 동기모드일때 설정(xxxx xxx0)

UBRR0H = 0x00; // 7372800 -> 115200( 비동기 일반모드)

UBRR0L = 0x03;

}



'AVR' 카테고리의 다른 글

config  (0) 2015.04.14
ADConverter  (0) 2015.04.14
PDF - AVR MCU (ATmega128)  (0) 2015.04.13
interruptClock  (0) 2015.04.13
interruptTimer  (0) 2015.04.13
interruptStopWatch  (0) 2015.04.13
Interrupt  (0) 2015.04.10
switch  (0) 2015.04.10
Posted by 권남
, |

최근에 달린 댓글

글 보관함