历史上的今天
今天是:2025年08月11日(星期一)
2021年08月11日 | MC9S12G128 PLL锁相环
2021-08-11 来源:eefocus
/*****************************************************************
** 程序名:MC9S12G128 PLL锁相环
** 参 数:无
** 功 能:将G128总线时钟超至32MHz
** 注 意:观察LED闪烁频率可知超频是否成功
** 作 者:赵露露
** 版 本:v1.0
** 时 间:2012.5.8
******************************************************************/
#include #include "derivative.h" /* derivative-specific definitions */ /***************************************************************** ** 函数名: delayms() ** 参 数:xms ** 功 能:在32MHz总线时钟下大约延时xms毫秒 ** 注 意: ******************************************************************/ void delayms(uint xms) { uint z,j; for(z=xms;z>0;z--) for(j=5340;j>0;j--); } void PLL_Init(void) { CPMUPROT = 0x26; //保护时钟配置寄存器 CPMUCLKS_PSTP = 0; //禁用PLL CPMUCLKS_PLLSEL = 1; //选择PLL作为系统时钟源 CPMUOSC_OSCE = 1; //外部晶振使能 CPMUSYNR = 0x07; //fVCO= 2*fOSC*(SYNDIV + 1)/(REFDIV + 1) CPMUREFDIV = 0x07; //16M:07,0F;32M:07,07;64M:07,03 CPMUPOSTDIV = 0x00; // PLL CLOCK = VCO CLOCK / (POSTDIV + 1) _asm(nop); _asm(nop); CPMUPLL=0x10; //锁相环调频启用,用以减少噪音 while(CPMUFLG_LOCK == 0); //等待PLL稳定 CPMUPROT = 0x00; //关闭保护时钟 CPMUCLKS_PLLSEL = 1; //使能PLL } void main(void) { DDRD = 0xFF; //设置PD(0-7)方向为输出 PORTD = 0xFF; //设置PD(0-7)输出高电平 PLL_Init(); while(1) { PORTD_PD0 = ~PORTD_PD0; //LED取反 delayms(5000); } }
上一篇:MC9S12G128 按键检测
下一篇:MC9S12G128 外部中断
史海拾趣
|
明天去电脑城买本本 看中 thinkpad R400 25C 链接:http://product.pconline.com.cn/notebook/thinkpad/400741_detail.html 这款机子自动内存1G 我想给它加根内存 但是不知道是加1G好 ...… 查看全部问答> |
|
请教各位 在单片机要读某个芯片的(比如读一个液晶的控制芯片,看它是否为忙)状态 因为要找到这个芯片的外部地址,又要置读/写位 这个在程序上是怎样一个实现顺序呢 同样写的过程又是怎样的呢… 查看全部问答> |
|
RT 正准备用stm32做上位机,dsp做控制。 二者通过can进行通信。 不知可否? 初次接触dsp,stm32. 请大姐指教一下。 谢谢!!… 查看全部问答> |
|
setting and running to a break point at the \"_NOP()\" 这是不是在用仿真器的时候才能行,我在debugger里面是看不到特殊寄存器的值变化的 我这样理解对吗?… 查看全部问答> |










