BASIC4MCU | 질문게시판 | 1602LCD에 실수 넣기 질문드립니다.
페이지 정보
작성자 전자학습자 작성일2020-01-21 13:50 조회5,101회 댓글2건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=11526
작성일
본문
안녕하세요
atmega128a와 1602LCD로 이것저것 해보고있습니다.글씨랑 숫자랑 넣고 이것저것해보다가 실수(소수점)있는 숫자를 넣으려는데? 로 표기되어서 질문글 남깁니다.사용 mcu : atmega128a사용 프로그램 : atmelstudio실수가아닌 정수로는 원하는 동작을 성공했었습니다.#include <stdlib.h> // stdlib.h을 선언해주고char aa[50] = ""; // 문자열 aa를 넣어주고int a = atoi(aa); // 문자 aa를 정수로 변환해서 a로 넣어주고LCD_goto_XY(1,0); // 문자가 표시될 위치를 넣어주고sprintf(aa,"%d",a); // 숫자 a를 다시 문자로 변환해서LCD_write_string(aa); // lcd에 aa를 표시===============================================================여기까지 정수를 lcd에 표시해넣고 스위치를 누를때마다 숫자가증/감하도록 했었습니다.이를 응용하여 소수점까지 표현하고싶어 아래와같이 시도했습니다===============================================================char cc[50] = "3.5";LCD_goto_XY(1,11);LCD_write_string(cc);이런식으로 main 안에 넣으면 정상적으로 1,11위치에3.5라는 숫자가 표시가 잘 됩니다.저는 3.5라는 숫자를 고정으로 표시하는게아니라증가, 감소를 시키고싶기때문에 수정을 해봤습니다.atoi는 정수형이라고하여 atof 로 했습니다.#include <stdlib.h> //stdlib.h 선언char dd[50] = ""; // 문자 dd 넣어주고double a = atof(aa); // aa는 실수형 a에LCD_goto_XY(1,0); // 문자넣을 위치 설정sprintf(aa,"%.1lf",a); // 소수점 1자리까지 표시하려고 .1lf 해주기LCD_write_string(aa);=====================================이런식으로 수정하면 lcd화면에 ? 가 표시됩니다..검색해보니이런것도있어서 체크해봤는데 안됩니다무슨 실수를 했을까요??
댓글 2
조회수 5,101master님의 댓글
master 작성일전자학습자님의 댓글
전자학습자
감사합니다 -lprintf_fit 하니까 됩니다.