📄 iar-
字号:
/****************************************Copyright (c)*****************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http:// www.embedtools.com
**
**--------------File Info----------------------------------------------------------------------------------
** File Name: PLLSet.c
** Last modified Date: 2007-9-18
** Last Version: v1.0
** Description: Stellaris系列单片机PLL设置
**
**---------------------------------------------------------------------------------------------------------
** Created By: Zhou Lishan
** Created date: 2007-9-18
** Version: v1.0
** Descriptions:
**
**---------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Description:
**
**********************************************************************************************************/
#define HWREG(x) (*((volatile unsigned long *)(x)))
#define SYSCTL_RIS 0x400fe050
#define SYSCTL_RCC 0x400fe060
#define SYSCTL_MISC 0x400fe058
#define SYSDIV 0x7 /* 0x7, PLL时钟8分频,系统时钟为
25MHz */
#define XTAL 0xb /* 0xb,使用6MHz晶体振 */
#define OSCSRC 00 /* 使用主(外部)振荡器 */
void PLLSet(void)
{
unsigned long ulRCC ,ulDelay;
ulRCC = HWREG(SYSCTL_RCC); /* 读取当前RCC寄存器的值 */
ulRCC |= 1 << 11; /* 旁路PLL */
ulRCC &= ~(1 << 22); /* 不使用系统分频器 */
HWREG(SYSCTL_RCC) = ulRCC; /* 写RCC寄存器 */
ulRCC = HWREG(SYSCTL_RCC);
ulRCC &= ~(3<<4); /* 选择主振荡器作时钟 */
ulRCC &= ~(0xf<<6); /* 设置晶振频率 */
ulRCC |= (XTAL<<6) ;
ulRCC &= ~(0xf<<23); /* 设置分频系数 */
ulRCC |= (SYSDIV <<23) ;
ulRCC &=~(1<<13); /* PLL 上电 */
ulRCC &=~(1<<12); /* PLL使能输出 */
HWREG(SYSCTL_RCC) = ulRCC; /* 写RCC寄存器 */
for(ulDelay = 32768; ulDelay > 0; ulDelay--) /* 如果XTAL值不更新,PLL值不会再
次锁定 */
{ /* 也即不会产生PLL锁定标记 */
if((HWREG(SYSCTL_RIS)&(1<<6))) /* 等待PLL锁定 */
{
HWREG(SYSCTL_MISC) = 1<<6; /* 清PLL锁定位 */
break;
}
}
HWREG(SYSCTL_RCC) |= 1 << 22; /* 使用系统分频器 */
HWREG(SYSCTL_RCC) &= ~(1<<11); /* PLL输出到系统时钟 */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -