아두이노를 이용한 라인트레이서 제작

본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

UART & Register 3(선택)

echo.ino 다시쓰기

void setup() {
  UART_Init(9600); // setup serial
}

void loop() {
  UART_Transmit(UART_Receive()); // Echo
}

void UART_Init(int baud){
  // Set baud rate
  unsigned int ubrr = 16000000/16/baud - 1;
  UBRR0H = (unsigned char) (ubrr>>8);
  UBRR0L = (unsigned char) ubrr;

  // Enable receiver and transmitter
  UCSR0B = _BV(RXEN0) | _BV(TXEN0);

  // Set frame format : 8 data, 2 stop bit
  UCSR0C = _BV(USBS0) | _BV(UCSZ01) | _BV(UCSZ00);
}

void UART_Transmit(unsigned char data){
  // Wait for empty transmit buffer
  while(!( UCSR0A & _BV(UDRE0)));

  // Put data into buffer, send data
  UDR0 = data;
}

unsigned char UART_Receive(void){
  // Wait for data to be received
  while(!(UCSR0A & _BV(RXC0)));

  // Get and return received data from buffer
  return UDR0;
}

led_control.ino 다시쓰기

unsigned char c;

void setup() {
  UART_Init(9600); // setup serial
  DDRB = _BV(DDB5); // sets the digital pin 13(PB5) as output
}

void loop() {
  c = UART_Receive();

  if(c == '1')
    PORTB = _BV(DDB5);
  else if(c == '0')
    PORTB = 0;
    
}

/* ↓↓↓↓↓↓↓↓↓↓↓↓↓ echo.ino와 이하 동일 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ */


 

참고자료

댓글

댓글 본문
버전 관리
YJ
현재 버전
선택 버전
graphittie 자세히 보기