질문게시판 > atmega328p에서 uart를 이용한 데이터 수신

TODAY66 TOTAL1,246,367
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 질문게시판 | atmega328p에서 uart를 이용한 데이터 수신

페이지 정보

작성자 또그로 작성일2018-02-12 13:31 조회2,705회 댓글0건

본문

	

안녕하세요. 처음 질문드립니다. 

제목 그대로 avr atmega328p를 이용했구요 프로그램은 atmelstudio7.0입니다.

데이터 송수신은 ic에서 tx는 안하고 rx(센서값)만 합니다.
레이다 센서(kestrel radar sensor) -> rs232포트로 uart 통신 -> atmega328p -> 74hc595-> PC/FND


질문1. 레이더 센서에서 오는 데이터값(속도)을 하이퍼터미널로 보고싶은데 아무것도 뜨질 않습니다.

질문2. 제 동작을 센서가 인식하여 움직일때마다 무언가 데이터를 넘겨주는데,
숫자로 FND에 계속같은 숫자들(ex.18,24,26)만 표기되네요ㅜㅜ 

질문3. UBRR0L = MYUBRR // boudrate 9600 여기서 값을 바꿀때마다 또 숫자만 바뀌긴 했지만  일정 숫자만 보내주는건 변함이 없습니다. 저는 속도를 알고싶을뿐인데 데이터가 왜변하는거죠??

 

 

 

/*

 * UART_START.c

 *

 * Created: 2018-02-09 오전 10:25:47

 * Author : Administrator

 */ 

 

#include <avr/io.h>

#include <avr/interrupt.h>

#include <stdio.h>

 

 

#define F_CPU 16000000UL // Clock Speed

#define BAUD 9600

#define MYUBRR F_CPU/16/BAUD-1

 

#define SHIFT_REGISTER DDRB

#define SHIFT_PORT PORTB

#define DATA (1<<PB3)     //MOSI (SI)

#define LATCH (1<<PB2)    //SS   (RCK)

#define CLOCK (1<<PB5)    //SCK  (SCK)

 

volatile unsigned char Font[10] = {0b00111111,0b00000110,0b01011011,0b01001111,0b01100110, //0,1,2,3,4

0b01101101,0b01111101,0b00100111,0b01111111,0b01101111}; //5,6,7,8,9

 

volatile unsigned char Fontdot[10] = {0b10111111,0b10000110,0b11011011,0b11001111,0b11100110, //0,1,2,3,4

0b11101101,0b11111101,0b10100111,0b11111111,0b11101111}; //5,6,7,8,9

 

 

int speed_1,speed_10,speed_100,temp ;

 

 

 

 

 

void USART_Init( void)

{

/*Set baud rate */

UBRR0H = 0;

UBRR0L =MYUBRR;

UCSR0A = 0X00;

UCSR0B = 0X18;        // USART Enable

UCSR0C = 0X06;        // No psrity, 1stop bit, 8bit data

}

 

void USART_Transmit( unsigned char data )

{

/* Wait for empty transmit buffer */

while ( !( UCSR0A & (1<<UDRE0)) )

;

/* Put data into buffer, sends the data */

DDRD = 0x00;

DDRB = 0xFF;

UDR0 = data;

speed_100 = ((data / 100) % 10) ;  //100의 자리

speed_10 =((data / 10) % 10) ; // 10의 자리

speed_1 = (data % 10) ; //1의 자리

sprintf("입력값: %d\r\n",data);

//Setup IO

SHIFT_REGISTER |= (DATA | LATCH | CLOCK); //Set control pins as outputs

SHIFT_PORT &= ~(DATA | LATCH | CLOCK);        //Set control pins low

 

//Setup SPI

SPCR = (1<<SPE) | (1<<MSTR);  //Start SPI as Master

 

//Pull LATCH low (Important: this is necessary to start the SPI transfer!)

SHIFT_PORT &= ~LATCH;

//Shift in some data

SPDR=Font[0]; while(!(SPSR&(1<<SPIF))); // 0

SPDR=Font[0]; while(!(SPSR&(1<<SPIF))); // 0

if(data>99){ // 99가 넘으면 fnd 에 9900 표시

SPDR=Font[9]; while(!(SPSR&(1<<SPIF))); // 9

SPDR=Font[9]; while(!(SPSR&(1<<SPIF))); // 9

}

else{

SPDR=Font[data%10]; while(!(SPSR&(1<<SPIF))); // 1의 자리

SPDR=Font[data/10]; while(!(SPSR&(1<<SPIF))); // 10의 자리

}

SHIFT_PORT |= LATCH;

SHIFT_PORT &= ~LATCH;

}

 

uint8_t receiveByte(void) {

while(!(UCSR0A&(1<<RXC0))); // 수신 되기를 기다림

return UDR0;                                /* return register value */

}

 

int main( void )

{

USART_Init();

while(1)

{

USART_Transmit(receiveByte());

}

}

 

라고 저의 부족한 지식에 고수님의 도움을 받고자 지식인에 올려 키트님의 도움을 받았습니다.
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=104&docId=294528715    //지식인 주소 

 아래는 약간 수정된 코드입니다.
또한 데이터 포맷을 추가로 올리며, 데이터값이 바이너리값이나 헥사값으로도 보내지는지 확인하여봤지만 보내주는 데이터는 이상하게 출력되지 않았습니다.

부족하고 긴 글 읽어주셔서 감사합니다.

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 0

조회수 2,705

등록된 댓글이 없습니다.

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
답변 답변글 답변 : 컴퓨터구조론 기억장치 모듈 부분 질문 드려봅니다 ㅠㅠ master 18-05-21 2315
질문 아두이노로 음악 파일을 열수 있을까요?댓글[1] hdki 18-05-18 1779
질문 아두이노 타이머 쪽으로 지식인에 질문드렸던 사람입니다!댓글[1] 아두노 18-05-18 1782
질문 LCD 질문드립니다 급합니다..ㅠ댓글[2] 이호 18-05-18 1861
답변 답변글 답변 : LCD 질문드립니다 급합니다..ㅠ master 18-05-18 1638
질문 안녕하세요! 질문드립니다댓글[1] 비공개 18-05-18 1665
질문 변수에 문자를 대입할때 여러 문자를 넣을 방법이 없나요?? hdki 18-05-17 1458
답변 답변글 답변 : 변수에 문자를 대입할때 여러 문자를 넣을 방법이 없나요??댓글[1] master 18-05-17 2032
질문 코드비전으로 변환댓글[1] 박희범 18-05-17 1804
질문 아두이노 펄스출력 DrVoid 18-05-17 2307
답변 답변글 답변 : 아두이노 펄스출력댓글[1] master 18-05-17 2276
질문 atmega128 포트D댓글[1] c린이 18-05-16 1996
질문 아트메가 통신댓글[3] 빠박이빠박 18-05-16 2197
질문 PWM질문입니다. 첨부파일 DrVoid 18-05-16 1660
답변 답변글 답변 : PWM질문입니다.댓글[1] master 18-05-16 1884
질문 안녕하세요. Lora 통신 관련해서 질문 드렸었는데, 재질문드립니다.댓글[7] 비공개 18-05-14 2842
질문 오늘 로드셀 관련하여 지식인에 질문드렸던사람입니다댓글[1] zxcv1vcxz 18-05-14 1971
질문 아두이노 우노에 적외선센서 2개 연결하는법댓글[1] 이미지첨부파일 cho11 18-05-14 7243
질문 아두이노관련 질문드립니다.댓글[1] 최승아 18-05-14 2031
질문 적외선센서와 mp3모듈 연결 소스코드댓글[1] dm501 18-05-14 2037
답변 답변글 답변 : 적외선 거리센서 공식 master 18-05-15 1999
질문 아두이노 적외선센서와 mp3플레이어 모듈 연결댓글[1] dm501 18-05-14 2380
질문 아두이노 어댑터를 뺏다가 연결했을떄 이더넷쉴드가 연결이 안됩니다댓글[1] 이미지첨부파일 cho11 18-05-14 2628
질문 atmega128 장애물회피자동차 스텝모터댓글[1] alsdn6431 18-05-14 3284
질문 아두이노 센서 2개 사용 코드 관련 질문 kimhk 18-05-14 3007
답변 답변글 답변 : fade (target 과 soundPre 의 관계를 이해) master 18-05-14 1443
답변 답변글 답변 2: 사운드 센서 신호 검출 master 18-05-14 1645
답변 답변글 답변 3: 복수개의 LED PWM 구동 방법 master 18-05-14 1784
질문 아두이노 카메라에 대해 질문있습니다.댓글[1] 후후훙 18-05-13 2097
질문 아두이노 센서 연결 질문댓글[3] dsfkmfkds 18-05-13 2180
게시물 검색

2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기