본문 바로가기

Enginius/Firmware

PIC32 - GPIO


TRIS 니 MASK 이런 것은 잘 모르겠고, 그냥 LED정도 쉽게 깜박이게 하는 방법정도려나.

RA1은 PORTA의 1번 비트를 뜻한다.
이를 읽거나 쓰기 위해서는 _RA1이렇게 해도 되고, PORTABits.RA1이렇게 해도 된다.
그 전에 읽으려면
mPORTASetPinsDigitalIn(BIT_1);  
이렇게 하고, 출력하려면
mPORTASetPinsDigitalOut(BIT_1);  
으로 한다.

'레스터스명'bits.'비트명' = 초기값
 더 간단히 하려면
 _'비트명' = 초기값

으로 하면 쓸 수 있다.
이는 MPLAB에 C32 Suite complier를 사용했을 때의 방법이다. ccs등의 툴은 다른 접근 방법을 갖는다.

아래는 간단한 예제이다.

//디지털 핀 IO 초기화
PORTSetPinsDigitalIn(IOPORT_B, BIT_1 | BIT_2 | BIT_3);

PORTSetPinsDigitalOut(IOPORT_C, IOPORT_PIN_6 | IOPORT_PIN_7);

//아날로그 핀 IO 초기화
PORTSetPinsAnalogIn(IOPORT_B, BIT_2 | BIT_4);

PORTSetPinsAnalogOut(IOPORT_C, IOPORT_PIN_6 | IOPORT_PIN_7);


//포트에 쓰기 / 지우기
PORTSetBits(IOPORT_B, BIT_2 | BIT_4);

PORTClearBits(IOPORT_B, BIT_2 | BIT_4);

PORTToggleBits(IOPORT_B, BIT_2 | BIT_4);

PORTWrite(IOPORT_B, BIT_2 | BIT_4);


//포트 읽어오기
unsigned int value = PORTRead(IOPORT_B);

unsigned int value = PORTReadBits(IOPORT_B, BIT_2 | BIT_4);

'Enginius > Firmware' 카테고리의 다른 글

PID 제어  (1) 2010.02.18
PIC32 - I2C  (0) 2010.02.17
PIC32 - Interrupt  (0) 2010.02.17
PIC32 - ADC  (0) 2010.02.17
PIC32 - 기본 페리  (0) 2010.01.05