[PIC12F EVM] GPIO 제어시 주의사항
PIC12 시리즈중 PIC12F683의 각 포트는 ADC, GPIO, Comparator등의 여러 기능을 가지고 있으므로 사용하려면 각각 설정이 필요하다. 특히 GPIO로 사용하기 위해 ADC, Comparator 설정 레지스터로 Disable 해 주어야 한다.
GPIO로 사용하기 위해 ADC를 Disale하는 ADSEL레지스터를 Clear하고, 입출력 방향을 설정하는 TRISIO레지스터 설정해야 한다. (0- Output, 1-Input).
//-----------------------------------------------------------------------------
// On board LED
#define LED1_BIT BIT0
#define Led1Init() Cbi(ANSEL, LED1_BIT);Cbi(TRISIO, LED1_BIT);
#define Led1Off() Sbi(GPIO, LED1_BIT)
#define Led1On() Cbi(GPIO, LED1_BIT)
#define Led1Toggle() Tbi(GPIO, LED1_BIT)
//---------------------------------------------------------------------------
// On board LED
#define LED1_BIT BIT0
#define Led1Init() Cbi(ANSEL, LED1_BIT);Cbi(TRISIO, LED1_BIT);
#define Led1Off() Sbi(GPIO, LED1_BIT)
#define Led1On() Cbi(GPIO, LED1_BIT)
#define Led1Toggle() Tbi(GPIO, LED1_BIT)
//---------------------------------------------------------------------------
Comparator 를 Disable하는 레지스터 CMCON0레지스터도의 CM0~CM2비트를 설정해 주어야 하는데 시스템 초기화시에 기본적으로 GPIO모드로 사용하도록 했다.
void SystemInit(void)
{
CMCON0 = 0x07; //Comparator Off, GPIO Enable
}
{
CMCON0 = 0x07; //Comparator Off, GPIO Enable
}
반응형