?>

Hard Copy World

HCW

Q&A

Home > Forum >

Q&A

[Q]실수형데이터의 문자 변환 시 ?로 찍히는 현상?

페이지 정보

작성자 heaven2 이름으로 검색 작성일15-07-15 17:58 조회2,513회 댓글2건

본문

실수형 데이터를 다룰 일 있는데, 이를 디버그 포트에 적으려고 아래와 같이 코딩하니..

실수값이 풀음표(?)로 찍혀 버립니다.  어떻게 해야 할 지?

Board: Arduino Mega

#include <Arduino.h>
#include <Time.h>

void setup() {
    Serial.begin(9600);
    char x[100] = "";
    double a = 0.1;
    double b = 12.23;
    sprintf(x, "%8.2f, %8.2f", a,b);
    Serial.println(x);    
}

void loop() {
  // put your main code here, to run repeatedly:

}

댓글목록

heaven2님의 댓글

heaven2 이름으로 검색 작성일

단순히 디버그로 찍으려면 Serial.print(a, 2)등과 같이 출력하면 되는데, 스트링으로 만들어서 파일로 저장해야 해야 합니다. ( in SD Card) ..
File.write(buffer..);
File.print(a, 2); 이런 식으로 구분해서 출력하며 되기는 되는데, 한 번에 Write하고 싶고,
자릿수도 맟추어야 하니 규격화된 포맷의 스트링을 만들고 싶습니다.
즉, 실수형 데이터는 0x05.02f 와 같이 XX.XX같은 형태의 출력을 만들고 싶습니다.
어떻게 해야 할까요?

하드카피님의 댓글

하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

예전에 어디선가 읽었었는데 아두이노에서 printf() 계열 함수는 사용에 제약이 있나봅니다. 아래 링크 참고하셔서 별도로 함수 구현이 필요할 수도 있어요.
http://playground.arduino.cc/Main/Printf
간단하게는 String 클래스를 이용하시는 것이 어떨까 싶습니다. 번거롭지만 String 클래스로 실수 변환하고 다시 char 배열에 담는 방법이 가능할 듯...