⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pllset.c

📁 用周立功的easyarm615做的智能循迹小车
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzhou ZHIYUAN electronics Co.,LTD.
**                                     
**                                 http://www.embedtools.com
**
**--------------File Info-------------------------------------------------------------------------------
** File Name: PLLSet.c
** Last modified Date: 2006-11-15 
** Last Version: v1.0
** Description: Stellaris系列单片机PLL设置
** 
**------------------------------------------------------------------------------------------------------
** Created By: Zhou Lishan
** Created date: 2006-11-15 
** 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 + -