코드 내부의 글자도 메모리를 잡아 먹는다. 그래서 F연산자로 플래쉬메모리(코드저장부분) 저장 하지만
그래도 한계가 있다. Uno의 경우는 더 심하다. 코드내에 글자수가 맘아지면 담을 수 있는 폰트도 많이 줄어
버린다. 이경우를 해결하기 위하여 코드안의 문장을 파일로 저장하고 출력 직전에 불러 오는 방식을 사용
하려고 한다. 문제는 문장을 쓰는 SD.prinln()은 있지만 문장을 읽어 오는 함수가 없어 엄청 불편 하다.
그래서 String readLine( File inf ) 함수를 만들었다.
메모장 등에서 텍스터 파일을 작성하면 문장 끝에는 16진수 0x0d 0x0a의 두 바이트가 붙어 있다.
String readLine( File inf ) // 읽어올 파일을 변수로 받는다.
{
char buff[50]; // 한번에 읽어올 버퍼 크기 : 필요에 따라 조절.. 넘 크면 매모리 다 잡아 먹음
int idx=0; // 참고로 한글은 3Byte
while(true)
{
byte b,b2;
b=inf.read();
if( b == 0x0d ) // CR(Carriage Return : \r)
{
b2= inf.read();
if( b2 == 0x0a ) // LF(Line Feed : \n)
{
buff[idx]= 0; // String의 끝을 표시( null )
return( String( buff ) );
}
buff[idx++] = b;
buff[idx++] = b2;
}
else buff[idx++] =b;
}
}
'프로젝트 > TFT LCD 한글 출력 (아두이노)' 카테고리의 다른 글
Hangul_Directed.H 를 이용한 한글 출력 (0) | 2022.08.21 |
---|---|
필요한 폰트를 메모리에 두지 말고 파일에 담아 사용하자. (0) | 2022.08.20 |
Hangul_SD,H ( SD카드에 폰트화일,인덱스화일 ) (0) | 2022.08.20 |
Hangul_Direct.h ( 필요한 폰트만 코드에 삽입 ) (10) | 2022.08.20 |
한글CLASS 메소드 (0) | 2022.08.14 |