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을 지시자라고 한다.

main3.c


#define : Function-like macro

매개변수가 존재하는 형태로도 정의할 수 있다. 이를 함수와 유사한 매크로라하는데 이를

매크로 함수라고한다.


매크로 정의 시, 먼저 정의된 매크로도 사용 가능.

장점 : 일반 함수에 비해 실행속도가 빠르다. 자료형에 따라서 별도로 함수를 정의하지                않아도 된다.                                                                                                                       (호출된 함수를 위한 스택 메모리의 할당, 실행위치의 이동과 매개변수로의 인자 전달, 반환무에  의한 값의 반환)


단점 : 정의하기 까다롭고, 디버깅이 쉽지 않다.


고로, 작은 크기의 함수나 호출빈도가 높은 함수들을 매크로로 정의하면 이점을 최대한 누릴 수 있다.


main4.c


main5.c


main6.c

main.c

선행처리한 소스들만 추려서 수정하는 법

1. 우선 만들어 놓은 디렉토리에서 Makefile을 notepad로 연다.

2. Ctrl+F를 눌러서 CFLAGS를 찾아 그 뒤에 --save-temps를 적고 저장하고 닫는다.

3. 해당 파일들이 포함되어 있는 cmd창에서 make clean->make를 하면 

해당 파일의 ~.i파일이 생성된다. 

찾아서 실행한다.

4. 열어보면 선행처리 해놓은 소스 원본들만 모여있다.

5. 여기서 수정 및 관리를 해준다.