PIC16F15xx 시리즈는 Enhanced Mid-range Core 로 저렴하면서 강력한 페리를 가진 MCU로 이전 PIC16시리즈와 클럭 시스템과 약간 다른 점이 있어 설정이 필요하다.
내부 클럭을 사용하면 31Khz에서 16Mhz로 설정 가능하고 기존 코드 호환을 위해 SystemInit()함수에 설정하였다.
void SystemInit(void)
{
//grobal interrupt disable
disable();
//Internal Oscillator Frequency Select bits
/*
1111 = 16MHz
1110 = 8MHz
1101 = 4MHz
1100 = 2MHz
1011 = 1MHz
1010 = 500 kHz(1)
1001 = 250 kHz(1)
1000 = 125 kHz(1)
0111 = 500 kHz (default upon Reset)
0110 = 250 kHz
0101 = 125 kHz
0100 = 62.5 kHz
001x = 31.25 kHz
000x = 31kHz LF
*/
IRCF0 = 1;
IRCF1 = 1;
IRCF2 = 1;
IRCF3 = 1;
//SCS 1x = Internal oscillator block
SCS0 = 1;
SCS1 = 1;
}
클럭설을 16Mhz로 설정하고 정상적으로 클럭이 동작하는지 확인하기 위해 CLKOUT핀(RA4)으로 출력해 보았다.
CONFIG1 레지스터에 CLKOUT_ON을 설정하면 시스템 클럭의 1/4이 출력되는것을 확인 할 수 있다. 4Mhz출력 되는것이 확인된다.
RA4(CLKOUT)
CONFIG1
1 = CLKOUT function is disabled. I/O function on the CLKOUT pin
0 = CLKOUT function is enabled on the CLKOUT pin
__CONFIG(WDTE_OFF&MCLRE_ON&FOSC_INTOSC&CLKOUTEN_ON);