C30 컴파일러에서는 I/O포트의 이름을 이용하여 포트 전체를 엑세스 할 수 있으며, 구조체를 이용하여 I/O 포트의 특정 비트도 엑세스할 수 있다. 이들 I/O 포트 변수들은 헤더 파일에서 각각 정의되어 있으며, 링커가 각각의 메모리 영역을 맵핑해 주고 있다. 디바이스 헤더파일 중 P24FJ128GA010.h 파일을 열어서 보면 PORTD의 각 비트들에 대해 구조체로 선언한 것을 볼 수 있다.
링커스크립트 파일인 P24FJ128GA010.gld 파일을 열어 보면 다음과 같이 I/O포트 변수들의 어드레스를 선언한 것을 볼 수 있다. 이들 어드레스는 데이터 시트의 PORTD 어드레스와 동일한 값을 가지고 있다. 따라서 이들 I/O포트 변수를 이용하여 실제 I/O포트의 입출력을 제어 할 수 있다.
소스코드
#include <p24fj128ga010.h>
#include <stdio.h>
int main(void)
{
TRISD = 0x0000;
PORTDbits.RD0 = 1;
while(1);
}
'PIC' 카테고리의 다른 글
C30 컴파일러 속성(Attribute) 사용 예제 (0) | 2011.04.01 |
---|---|
C30 컴파일러 속성(Attribute) (1) | 2011.04.01 |
MPLAB IDE - C30 컴파일러 사용 [PIC24FJ128GA010] (0) | 2011.03.31 |