BASIC4MCU | 질문게시판 | 실수형 환산 문의.
페이지 정보
작성자 도도리 작성일2018-02-24 17:59 조회35,551회 댓글4건본문
gps모듈 데이터 파싱을통해 GPGGA에서 위도, 경도만 뽑아내었습니다.
그런데 위도,경도 모두 실수형인 초를 구하는 부분이 안됩니다.
혹시 %lf부분이 잘못 되었나요??
파싱한 부분은 사진 첨부하였습니다.
void GPS_Longitude() // 경 도
// $GPGGA,035155.00,3723.19464,N,12656.72748,E,1,06,1.69,47.0,M,18.5,M,,*6F 샘플
{
unsigned char DO,BOON; // 도,분 저장 변수
double CHO; // 초 저장 변수
double Longitude; // GPS_LATITUDE 값 저장 변수.
Longitude=atof(GPS_Dcut[4]); // 문자열을 DOUBLE 형 으로 변환후 저장=>" 12656.72748 "
DO=(int)Longitude/100; // 도 인 126위치 저장
BOON=((int)Longitude%100); // 분 인 56 저 저장
CHO=(Longitude-(int)Longitude)*60; // 초 를 구하기 위하여(12656.72748-12656)*60
sprintf(test3,"LONGITUDE:%d'%d`%lf %s \n\r",DO,BOON,CHO,GPS_Dcut[5]); //도,분,초,E
TX0_STR(test3);
_delay_ms(1000);
}
댓글 4
조회수 35,551master님의 댓글
master 작성일
%lf는 무엇일까요?
8비트 AVR에서 float와 double의 크기가 같습니다.
https://www.basic4mcu.com/bbs/board.php?bo_table=gesiyo18&wr_id=38
master님의 댓글
master 작성일
%f로 출력해보시고
https://www.basic4mcu.com/bbs/board.php?bo_table=gesiyo9&wr_id=45
실수형 표시가 물음표로 나오면 이 글 참고하세요
master님의 댓글
master 작성일
sprintf(test3,"LONGITUDE:%d'%d`%d %s \n\r",DO,BOON,(int)CHO,GPS_Dcut[5]); //도,분,초,E
%d <-- (int)CHO
정수형으로 출력 할 수도 있겠습니다.
도도리님의 댓글
도도리 작성일감사합니다. 알려주신대로 라이브러리와 옵션을 설정하니 실수형 표현이 잘 됩니다.