-
20140417 (LCD specification, 연결리스트 치환, 삽입)부산IT학원/스마트컨트롤러 2014. 4. 17. 14:10
44일차
-------------------
LCD specification
-------------------
- LCD의 종류
- LCD를 만지기를 앞서
LCD의 설명서를 보고 시작한다.
설명서를 보는 방법.
두번째 페이지인데 문서 Revision History는 항상 작성해야 한다고 한다.
First issue를 제외한 다음 것부터는 수정내용을 기록함.
기능 및 특성
내부 구조도.
각 핀들 설명인데
RS 가 H 일 때와 L 일 때 어떤 기능인지 기억해 둘것.
R/W 도 H 일 때와 L 일 때 기능 기억.
프로그래머 기준으로 LCD에 쓰려고 하면 L (Write)
프로그래머 기준으로 LCD에 읽으려 하면 H (Read)
타이밍 그래프라 부른다 (Timing Diagram)
현재 Write 모드
초기에 RS, R/W, DB값이 아무 값이든 상관 없다가
명령을 주면 (파란선)
RS는 명령 or 데이터 이니 H, L 아무 값.
R/W는 Write 모드이니 L.
E는 우선 유지
DB 값은 여러 값이 들어가 있으니 H, L로 표시
명령을 읽기 (보라선)
E의 값이 H 로 바뀌고
명령을 읽으면서 LCD에 명령을 실행 시킨다.
- C
---------------
연결리스트
---------------
- 치환
- 삽입
--- calloc
- <stdlib.h>
void * calloc(size_t count, size_t size);
-> 성공시 할당된 주소, 실패시 NULL, 0으로 초기화 해줌.
ex) 소스
#include <stdio.h>
#include <stdlib.h>
int main()
{
int * p;
int iNum;
p = (int *)calloc(10, sizeof(int));
for(iNum = 0; 10 > iNum; ++iNum)
{
printf("%d %d\n", p[iNum], iNum);
}
free(p);
return 0;
}출력 화면
--- realloc
- <stdlib.h>
void * realloc(void * ptr, size_t size);
-> 성공시 재 할당된 주소, 실패시 NULL
ex) 소스
#include <stdio.h>
#include <stdlib.h>
int main()
{
int * p;
int iNum;
p = (int *)malloc(sizeof(int)*5);
for(iNum = 0; 5 > iNum; ++iNum)
{
p[iNum] = iNum;
printf("%d ", p[iNum]);
}
printf("\n");
p = (int *)realloc(p, sizeof(int)*10);
for(iNum = 5; 10 > iNum; ++iNum)
{
p[iNum] = iNum;
printf("%d ", p[iNum]);
}
printf("\n");
for(iNum = 0; 10 > iNum; ++iNum)
{
printf("%d ", p[iNum]);
}
free(p);
return 0;
}출력 화면
'부산IT학원 > 스마트컨트롤러' 카테고리의 다른 글
20140422 (LCD 코드 최적화, 문자열, 숫자 출력, DDRAM, Cursor or Display option, 링크드리스트 삽입삭제) (0) 2014.04.22 20140421 (LCD 제어 화면 출력, Single Linked List) (0) 2014.04.21 20140416 (LED 실습, #if #ifdef #ifndef #endif #else, 분할 컴파일) (0) 2014.04.16 20140415 (define, 연결리스트 링크드리스트) (0) 2014.04.15 20140414 (ATMega128 내부, 메모리 방식 폰노이만 하바드, 연결리스트, 동적할당) (0) 2014.04.14