_FOSC(FCKSM_CSECMD & OSCIOFNC_ON & POSCMD_NONE);
_FOSCSEL(IESO_ON & FNOSC_FRC);
_FGS(GWRP_OFF & GCP_OFF);
_FWDT(FWDTEN_OFF&PLLKEN_ON);
_FICD(ICS_PGD2&JTAGEN_OFF);
我使用KET3仿真,如果选择FRC,这样是正常的,但是当我选择FNOSC_FRCPLL,后,而后
PLLFBD = 43;//(int)(DPLL * 4 - 2);M=45 // dPLL derived in UserParms.h PLL反馈分频比寄存器
CLKDIVbits.PLLPOST = 0; // N1=2 CLKDIV时钟分频比寄存器 00= 输出被2分频
CLKDIVbits.PLLPRE = 0; // N2=2 PLL相位检测器输入分频比选择位 (也表示为 “N1”,PLL预分频比)
//先切换为带PLL内部FRC
__builtin_write_OSCCONH(0x01); //写入寄存器OSCCON的高八位 001= 带PLL的N分频快速RC振荡器 (FRC)(FRCPLL)
__builtin_write_OSCCONL(0x01); //OSWEN: 振荡器切换使能位
while(OSCCONbits.COSC != 0b01);
//Wait for PLL to lock
while(OSCCONbits.LOCK != 1);
使用FRC+PLL的,就出错,请问有无人遇到,是什么问题,谢谢 |