请问各位高手,晶振由11.0592M改为20M,改为如下后上电不运行。<br /><br />config.h<br />----------------------------------------<br />#define Fosc 20000000 // 由11059200<br />#define Fcclk (Fosc * 1) <br />#define Fcco (Fcclk * 2) <br />#define Fpclk (Fcclk / 4) * 1 <br /><br /><br />target.c 这个文件不要改吧<br />----------------------------------------<br />// 设置系统各部分时钟<br />// Set system timers for each component<br /> PLLCON = 1; // 设置激活但未连接PLL<br />// 设置外设(VPB时钟pclk)时钟与系统(cclk)时钟的分频比<br />#if (Fpclk / (Fcclk / 2)) == 1<br /> VPBDIV = 0;<br />#endif<br />#if (Fpclk / (Fcclk / 2)) == 2<br /> VPBDIV = 2;<br />#endif<br />#if (Fpclk / (Fcclk / 2)) == 4<br /> VPBDIV = 1;<br />#endif<br /><br />// 设定PLL的乘因子M和除因子P的值<br />#if (Fcco / Fcclk) == 2<br /> PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5);<br />#endif<br />#if (Fcco / Fcclk) == 4<br /> PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5);<br />#endif<br />#if (Fcco / Fcclk) == 8<br /> PLLCFG = ((Fcclk / Fosc) - 1) | (2 << 5);<br />#endif<br />#if (Fcco / Fcclk) == 16<br /> PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5);<br />#endif<br /> PLLFEED = 0xaa;<br /> PLLFEED = 0x55;<br /> while((PLLSTAT & (1 << 10)) == 0); // 等待锁定<br /> PLLCON = 3; // 设置激活并连接PLL<br /> PLLFEED = 0xaa; // 发送PLL馈送序列,执行激活和<br /><br />连接动作.<br /> PLLFEED = 0x55;<br /><br />// 设置存储器加速模块<br />/* Set memory accelerater module*/<br /> MAMCR = 0;<br />#if Fcclk < 20000000<br /> MAMTIM = 1;<br />#else<br />#if Fcclk < 40000000<br /> MAMTIM = 2;<br />#else<br /> MAMTIM = 3;<br />#endif<br />#endif<br /> MAMCR = 2; |
|