회원가입 ID/PW 찾기
AA

안녕하세요.

 

avr펌웨어를 하면서 데이타 파싱하는 부분에 문제가 있어서 이렇게 도움을 요청합니다.

 

시리얼인터럽트 루틴에서 데이타를 받으면서 비슷한 값의 데이타를 받으면 하나로 인식하는 현상이 발생합니다.

 

예를들면, ERROR1~15라는 데이타 값이 있는데요. 문자이구요.

 

ERROR1, ERROR10,ERROR11,ERROR12,ERROR13,ERROR14,ERROR15의 데이타값을 각각 수신하면...ERROR1로만 인식이 됩니다.

 

한바이트씩 받으면서 처리하기때문에 7자 문자가 6자 문자로 받으면서 먼저 ERROR1로 인식해 버립니다.

 

어떻게 처리하면 되는지 좋은 조언부탁드립니다.

 

UCHAR Rev_Data = 0;

ISR(USART0_RX_vect)
{

     Rev_Data = UDR0;

 //    Parsing_ReceiveData_Xray(Rev_Data);   // 받은 데이타를 파싱하는 함수

}

 

질문

1. 한바이트씩 데이타를 받아서 비교해서 처리하는데요..

예를들어, ERROR1, ERROR10인 경우에 파싱하는 함수에서 마지막 데이타 값과 전체 LENGTH를 비교해서 처리하는데....

 

ERROR10인 경우 7바이트의 LENGTH이지만, 한바이트씩 받아서...먼저 6바이트 LENGTH루틴으로 빠져버립니다.

수신인터럽트상에서 6바이트인지...7바이트인지를 어떻게 처리해야 하나요?

 

며칠동안 모든 방법을 동원했지만.....쉽게 해결되지않네요...

답변 부탁드립니다.

 

댓글 2
  • No Profile

    답변이랑 의견이랑 다른거군요.ㅎㅎ

     

    제가 생각하기에는 두가지 방법이 있을 듯 합니다.

     

    1. 모든 데이터 값을 7 바이트로 처리하는 방법입니다. ERROR1 -> ERROR01 로 변경해서 처리하면 어떨지요.

     

    2. 일단 데이터들이 6바이트든 7바이트든 연속해서 올텐데요. 그 간격 만큼 기다렸다가 데이터를 해석하는 방법이 있겠습니다. 즉 다음 바이트가 들어올 시간동안 기다려보고 들어오는 데이터가 없으면 마지막 바이트가 들어온 것으로 보고 데이터 파싱 처리하는 방법이 되겟습니다. 참고가 되시길...

  • No Profile

    string.h 를 include 하신 다음에
    uart data를 string 형으로 저장한다음, 아래와 같이..

            while(rx_counter_usartf1 != 0) //
                {
                RxString1[RxCountTemp1] = rx_char(1);
                RxCountTemp1++;
                }
    if( ( strncmp( "ERROR1", RxString1) ) == 0 ) {...............} //문자열 비교하여 같으면 '0'
    else if( ( strncmp( "ERROR2", RxString1) ) == 0 ){...............} //문자열 비교하여 같으면 '0'
    else if( ( strncmp( "ERROR3", RxString1) ) == 0 ){...............} //문자열 비교하여 같으면 '0'
    else if( ( strncmp( "ERROR4", RxString1) ) == 0 ){...............} //문자열 비교하여 같으면 '0' .........
    형태로 비교처리하는 방식으로 가시는 것이 어떠실런지?

    생각보다 잘~~~ 됩니다.

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
109 Analog & Mixed-Signal 설계 HOTQ8 SpeedUp TR 회로 해석 부탁드려도 될까요?2 H2히로 427 2015.09.30
108 Analog & Mixed-Signal 설계 HOT트랜스를 사용하지 않은 AC-DC 컨버터 회로를 설계하고 있는대 도움 좀 주세요1 hertz 799 2015.08.04
107 Analog & Mixed-Signal 설계 HOT전원회로를 분석하는데 도움좀 주십시요~!(질문만 올려서 죄송합니다..ㅜㅜ)7 뒷동산쓰레귀 2799 2015.02.02
106 Analog & Mixed-Signal 설계 HOT5V와 3.3V 간의 레벨 맞추기에 대하여...2 뒷동산쓰레귀 835 2015.01.30
105 Analog & Mixed-Signal 설계 스위칭 MOSFET 질문입니다4 후후후 346 2014.11.12
104 Analog & Mixed-Signal 설계 HOT전력오피앰프의 비반전 증폭회로 제가 잘 못 구성한 것입니까?1 전자뱅뱅 497 2014.10.18
103 Analog & Mixed-Signal 설계 simplorer 11 serial2 syleepaul 321 2014.10.08
102 Analog & Mixed-Signal 설계 HOT초보가 기존의 설계를 변경하려 합니다.4 gotofbi 462 2014.05.14
101 Analog & Mixed-Signal 설계 HOT고압 싸인파를 만들기 위한 회로도가 의심스럽습니다.5 전자뱅뱅 1014 2014.05.01
100 Analog & Mixed-Signal 설계 HOT이 회로에서 쇼트가 나는이유?3 아크마 530 2014.04.22
99 Analog & Mixed-Signal 설계 HOT노이즈 필터 설계시 역률 관계1 ganges 685 2013.06.17
98 Analog & Mixed-Signal 설계 HOT정말 기초 질문인데요ㅠㅠ 회로설계 시작할때요 ㅠ1 플리즈헬미 730 2013.05.12
97 Analog & Mixed-Signal 설계 HOTSMPS와 아답터의 차이를 알고 싶습니다.2 초보에염ㅠㅠㅠ 1832 2013.04.01
96 Analog & Mixed-Signal 설계 HOT레귤레이터 출력 전압 조절질문입니다.1 긍정적 마인드 935 2013.01.23
95 Analog & Mixed-Signal 설계 HOTCCD의 무선 전송(지그비) 로미옹 408 2013.01.07
94 Analog & Mixed-Signal 설계 HOTOPAMP와 TR통해서 전류증폭관련 질문입니다. 조신율 2305 2012.11.29
93 Analog & Mixed-Signal 설계 HOT로또 추첨기 회로1 광돌이 832 2012.11.07
92 Analog & Mixed-Signal 설계 리셋관련된 이상동작2 칼라무지게 359 2012.10.11
91 Analog & Mixed-Signal 설계 HOTBJT와 MOSFET의 쓰임새1 알파친노 1132 2012.10.11
90 Analog & Mixed-Signal 설계 HOT제너 다이오드의 쓰임새1 알파친노 569 2012.10.11
  • 인간은 항상 시간이 없다고 불평하면서 마치 시간이 무한정 있는 것처럼 행동한다.
    - 세네카
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.