EEPROM Description 내용
*(volatile unsigned char *)0x3A = 0x01; //PA0를 출력
0x3A를 휘발성 1byte로 캐스팅해서 따라가라
*(volatile unsigned char *)0x3B = 0x01; //PA0를 High로 출력.
0x3B를 휘발성 1byte로 캐스팅해서 따라가라
unsigned uiCnt;
for(uiCnt=0; 65000>uiCnt; ++uiCnt); //65000을 한번에 넣어버린다.
volatile unsigned uiCnt;
for(uiCnt=0; 65000>uiCnt; ++uiCnt); A, ON //최적화하지말고 하나하나 다 세라.
*(volatile unsigned char *)0x3B = 0x01;
for(uiCnt=0; 65000>uiCnt; ++uiCnt); B, OFF //최적화하지말고 하나하나 다 세라.
*(volatile unsigned char *)0x3B = 0x00;
순서
선행처리기
선행처리는 컴파일 이전의 처리를 의미.
#define PI 3.14 - PI를 만나면 무조건 3.14로 치환해라!
대표적인 선행처리 명령문
#define을 지시자라고 한다.
#define : Function-like macro
매개변수가 존재하는 형태로도 정의할 수 있다. 이를 함수와 유사한 매크로라하는데 이를
매크로 함수라고한다.
매크로 정의 시, 먼저 정의된 매크로도 사용 가능.
장점 : 일반 함수에 비해 실행속도가 빠르다. 자료형에 따라서 별도로 함수를 정의하지 않아도 된다. (호출된 함수를 위한 스택 메모리의 할당, 실행위치의 이동과 매개변수로의 인자 전달, 반환무에 의한 값의 반환)
단점 : 정의하기 까다롭고, 디버깅이 쉽지 않다.
고로, 작은 크기의 함수나 호출빈도가 높은 함수들을 매크로로 정의하면 이점을 최대한 누릴 수 있다.
선행처리한 소스들만 추려서 수정하는 법
1. 우선 만들어 놓은 디렉토리에서 Makefile을 notepad로 연다.
2. Ctrl+F를 눌러서 CFLAGS를 찾아 그 뒤에 --save-temps를 적고 저장하고 닫는다.
3. 해당 파일들이 포함되어 있는 cmd창에서 make clean->make를 하면
해당 파일의 ~.i파일이 생성된다.
찾아서 실행한다.
4. 열어보면 선행처리 해놓은 소스 원본들만 모여있다.
5. 여기서 수정 및 관리를 해준다.
'ATMega128' 카테고리의 다른 글
20140417 - LCD의 이해 (0) | 2014.04.17 |
---|---|
20140416 - 분할 컴파일(헤더파일), 조건부 컴파일을 위한 매크로, ATMega LED 와리가리 (0) | 2014.04.16 |
20140414 - 회로도 읽는 법, 레지스터, (0) | 2014.04.14 |
20140414 - ATMega Block Diagram (0) | 2014.04.14 |
20140411 - Data Sheet, ATMega 살펴보기, LED 실습 (0) | 2014.04.11 |