스마트 컨트롤러 - 포인터의 이해&LCD Datasheet
학습목표
포인터 변수의 활용과 문법에 대해 안다.
포인터 변수 대입 시 형일치를 판별할 수 있다.
LCD데이터 시트에서 특징과 핀번호를 알 수 있다.
포인터란 주소 값을 저장하기 위해 선언되는 변수를 포인터 변수라고 한다.
포인터를 선언할 때 변수형은 포인터(*)로 인해 결정되지만 해당 포인터가 가리키는 형을 따라서 변수형(ex. char, int...)
주소를 가리키는 앰퍼센트(&)는 단항 연산자이다. 때문에 앰퍼센트 앞에 항이 와 버리면 비트연산자로써 논리연산을 수행하게 된다.
반드시 포인터가 같은 형태를 가리키라는 법칙은 없다(일반적으로는 맞춰 주어야 한다.)
포인터를 사용하여 메모리를 해석하는 방법을 달리할 수 있다.
int형의 자료를 넣어 놨을지라도 메모리에 저장되어 있는 값을 포인터를 활용하여 float으로 해석하면 실수 형으로 값을 해석하여 표현하게 된다.
포인터를 활용하여 입력된 값들을 해석해보자!
포인터의 형 선언 시 아스터리스크(*)를 변수형과 변수명 사이 어느 곳에든 위치 시켜도 되지만 일관성은 유지할 것을 추천한다.
포인터의 변수형이 다르더라도 컴파일러는 오류를 내지 않고 경고를 표시만 나타내주며 컴파일을 해준다. 두 가지 변수가 주소를 취급하는 경우에는 오류를 내지 않는다.
예를 들어 아래의 코딩은 오류를 내지 않는다.
int num1 = s;
double *pnum1 = &num1;
// C++은 포인터 형이 다를 경우 컴파일 시켜주지 않는다.
포인터의 기능 및 처리절차를 이해해야 포인터와 관련하여 컴파일 시 오류가 나더라도 처리할 수 있다.
p/280 - 포인터 연산)
포인터 형은 메모리 공간을 참조하는 기준이 된다.
예를 들어,
int num;
int * pNum;
pNum = #
에서 *에 선언된 int(4byte)는 해당 주소를 가진 변수로 가서 int만큼(4byte)의 데이터를 표시하라는 뜻이다.
포인터의 형이 존재하는 이유는 포인터 기반의 메모리 접근기준을 마련하기 위해서이다.
LCD 데이터 시트
- 화살표 표시된 것들은 BUS
- VDD = VCC, VSS = GND
- VR은 가변저항
- LEDA(LED VCC), LEDK(LED GND)
핀설명
1. GND
2. VCC
3. 0V
4. 5V - data register, 0V - instruction register (프로그래밍을 해야 하는 핀)
5. 5V - Read, 0V - write (프로그래밍을 해야 하는 핀)
//LCM - LCD Module
6. LCD module on/off (프로그래밍을 해야 하는 핀)
7 - 14. BUS
15 - 16. LED 전원
전원부(1,2) BUS 그리고 LED 전원에만 선을 연결해 보자!
아트메가 연결 핀 약속.
PC0 - PA7 -> BUS 7 - 14
PG0 -> RS(4)
PG1 -> R/W(5)
PG2 -> E(6)
'Busan IT > 스마트 컨트롤러' 카테고리의 다른 글
변수 공유 및 보완을 위한 명령어/LCD datasheet를 토대로 한 ATmega 기초코딩 (0) | 2015.03.18 |
---|---|
LCD 프로그래밍을 위한 기초 작업 (0) | 2015.03.17 |
1차원 배열의 입력과 출력 (0) | 2015.03.13 |
메모리(RAM)의 구조/지역변수&전역변수/AVR makefile (0) | 2015.03.11 |
Return의 기능/전역 변수 & 지역 변수/메모리의 영역 구분 (0) | 2015.03.10 |