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

📄 iar-

📁 IAR_example_EasyARM8962.zip
💻
字号:
/****************************************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 + -