///////////////////////////////////////////////////////////////////////
//Configure Explorer 16 的外部 8M OSC ,配合PLL 倍頻到 80M Hz
//Fosc=80MHz Fcy=Fosc/2==40MIPS 1Tcy=25ns
///////////////////////////////////////////////////////////////////////
_FOSCSEL( FNOSC_PRIPLL & IESO_OFF );
_FOSC( POSCMD_XT );
///////////////////////////////////////////////////////////////////////
//FRC divide by 16
//Fosc=7.36/16=0.46MHz Fcy=Fosc/2=0.23MHz 1Tcy=1/Fcy=4.35us
///////////////////////////////////////////////////////////////////////
_FOSCSEL( FNOSC_FRCDIV16 & IESO_OFF );
_FOSC( POSCMD_NONE ); //Primary OSC Disable
///////////////////////////////////////////////////////////////////////
//FRC
//Fosc=7.36MHz Fcy=Fosc/2=3.68MHz 1Tcy=1/Fcy=0.27us
///////////////////////////////////////////////////////////////////////
_FOSCSEL( FNOSC_FRC & IESO_OFF );
_FOSC( POSCMD_NONE ); //Primary OSC Disable
///////////////////////////////////////////////////////////////////////
//Explorer 16 的內部FRC 7.36M OSC ,配合PLL 倍頻
//Fosc=73.6MHz Fcy=Fosc/2=36.8MIPS 1Tcy=1/Fcy=27ns
///////////////////////////////////////////////////////////////////////
_FOSCSEL( FNOSC_FRCPLL & IESO_OFF );
_FOSC( POSCMD_NONE ); //Primary OSC Disable
////////////////////////////////////////////////////////////
//Explorer 16+dspic33fj256gp710
//Fosc=Fin x PLL
//PLL=M/(N1*N2)=(38+2)/(2*2)=10
//M=PLLDIV+2
//N1=PLLPRE+2
//N2=2x(PLLPOST+1)
///////////////////////////////////////////////////////////
CLKDIVbits.PLLPRE = 0;
CLKDIVbits.PLLPOST = 0;
PLLFBDbits.PLLDIV = 38;
TRISAbits.TRISA15 = 0;
while(1){
asm volatile("bset LATA,#15"); //1Tcy
asm volatile("bclr LATA,#15"); //1Tcy
asm volatile("bset LATA,#15"); //1Tcy
asm volatile("bclr LATA,#15"); //1Tcy
}
ps: PIC24F Fcy=Fosc/2
PIC24F Fcy=Fosc/2
dsPIC30 Fcy=Fosc/4
dsPIC30(SMPS) Fcy=Fosc/2
dsPIC33 Fcy=Fosc/2
