-
20140429 (PC와 시리얼 통신으로 LCD 문자 찍기, 사용자 정의 폰트, fseek, ftell)부산IT학원/스마트컨트롤러 2014. 4. 29. 17:48
51일차
정리 다 했는데.....
갑자기 다 날아갔다......
--------------------------------------
PC와 시리얼 통신으로 LCD 문자 찍기
--------------------------------------
--- PC와 시리얼 통신
어제 소스에서 main만 고치면 PC와 시리얼 통신이 되었다.
PC에서 키보드를 치면 그대로 LCD에 나왔다.
- main.c
#include "smart.h"
#include "Lcd.h"
#include "Usart.h"
int main(void)
{
// Initialization
LCD_Init();
Usart_Init();
while(1)
{
LCD_Data(Usart_Rx());
}
return 0;
}--- 사용자 정의 폰트
- 소스
void Write_CGram(void)
{
unsigned int iNum;
unsigned char ucCChar[48] =
{
0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0E, 0x04, 0x0A, 0x00,
0x00, 0x00, 0x00, 0x11, 0x04, 0x0E, 0x04, 0x11,
0x00, 0x00, 0x00, 0x04, 0x0A, 0x11, 0x0A, 0x04,
0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x11
};
LCD_Inst(INST_SET_CGRAM);
for(iNum = 0; 48 > iNum; ++iNum)
{
LCD_Data(ucCChar[iNum]);
}
LCD_Inst(INST_SET_DDRAM);
}
이런식으로 나온다.
데이터를 쓸 때 CGRAM, DDRAM 둘 중에 선택하여 쓸 수 있는것 같은데
초기값으로는 DDRAM인듯 하다.
사용자 정의 문자를 CGRAM에 쓸 것이니 쓸 곳을 CGRAM으로 바꿔 준다는 명령어로
LCD_Inst(INST_SET_CGRAM) 명령을 주고
다시 DDRAM으로 바꿔 주면 끝.
CGRAM : 사용자 정의 폰트(이론상으론 64byte, 실습결과 48byte 저장가능)
DDRAM : 80문자 저장, LCD 주소와 매치
CGROM : 미리 정의된 폰트 저장
- C
--------------------
파일 위치 지시자
--------------------
- 위치 지정자 이동 fseek
#include <stdio.h>
int fseek(FILE *, long offset, int wherefrom);
#include <stdio.h>
int main()
{
FILE * fp = fopen("text.txt", "wt");
fputs("123456789", fp);
fclose(fp);
fp = fopen("text.txt", "rt");
fseek(fp, -2, SEEK_END);
putchar(fgetc(fp));
fseek(fp, 2, SEEK_SET);
putchar(fgetc(fp));
fseek(fp, 2, SEEK_CUR);
putchar(fgetc(fp));
fclose(fp);
return 0;
}
- 위치 지정자 저장. ftell
#include <stdio.h>
long ftell(FILE * stream);
'부산IT학원 > 스마트컨트롤러' 카테고리의 다른 글
20140507 (ADCL, ADCH, 광센서 실습, 서적관리 프로그램 구현) (0) 2014.05.07 20140430 (ADC, 컴파일 -D 옵션, extern, static) (0) 2014.04.30 20140428 (PC, ATMega128 간 시리얼 통신, fread, fwrite) (0) 2014.04.28 20140425 (UART Reg setting, c언어 파일 입출력, feof) (0) 2014.04.25 20140424 (시리얼 통신, USART블럭구조, 파일 입출력) (0) 2014.04.24