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

📄 mcu.c

📁 lpc213x单片机 无线通信年nRF24L01源码
💻 C
字号:
/***************************************************************************************************
**              Copyright (c) 2001,ysh
**              All rights reserved.
**----------------------------------文件信息--------------------------------------------------------
**文件名称: mcu.c
**文件标识:
**摘    要:lpc213x单片机系统设置文件
**--------------------------------------------------------------------------------------------------
**当前版本:0.1
**作    者:ysh
**完成日期:2006.5.8
**主要改动:
**
**取代版本:
**原  作者:
**完成日期:
***************************************************************************************************/
#include    "config.h"



/*------------------------------------------------------------------------------------------------*-
** 函数名称:UINT    PLL_set(void)
** 函数功能:设置单片机系统内部各部分时钟,PLL,VPB
** 入口参数:无
** 出口参数:1:成功
** 全局变量:Fosc,Fcclk,Fpclk,Fcco在config.h文件中设置
**------------------------------------------------------------------------------------------------*/
UINT    PLL_set()                               
{
    PLLCON = 1;
#if (Fpclk / (Fcclk / 4)) == 1
    VPBDIV = 0;
#endif
#if (Fpclk / (Fcclk / 4)) == 2
    VPBDIV = 2;
#endif
#if (Fpclk / (Fcclk / 4)) == 4
    VPBDIV = 1;
#endif

#if (Fcco / Fcclk) == 2
    PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5);
#endif
#if (Fcco / Fcclk) == 4
    PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5);
#endif
#if (Fcco / Fcclk) == 8
    PLLCFG = ((Fcclk / Fosc) - 1) | (2 << 5);
#endif
#if (Fcco / Fcclk) == 16
    PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5);
#endif
    PLLFEED = 0xaa;
    PLLFEED = 0x55;
    while((PLLSTAT & (1 << 10)) == 0);
    PLLCON = 3;
    PLLFEED = 0xaa;
    PLLFEED = 0x55;   
    
    return 1;
}

/*------------------------------------------------------------------------------------------------*-
** 函数名称:void    PLL_clr(void)
** 函数功能:清除PLL,使单片机工作在外部时钟下,IAP等时用
** 入口参数:无
** 出口参数:无
** 全局变量:无
**------------------------------------------------------------------------------------------------*/
void    PLL_clr()
{
    PLLCON = 0;
    PLLFEED = 0xaa;
    PLLFEED = 0x55;     
}
/*------------------------------------------------------------------------------------------------*-
** 函数名称:void    MAM_set(void)
** 函数功能:设置存储器加速模块
** 入口参数:无
** 出口参数:无
** 全局变量:Fcclk在config.h文件中设置
**------------------------------------------------------------------------------------------------*/
void    MAM_set()      
{
    MAMCR = 0;
#if Fcclk < 20000000
    MAMTIM = 1;
#else
#if Fcclk < 40000000
    MAMTIM = 2;
#else
    MAMTIM = 3;
#endif
#endif
    MAMCR = 2;      
}

/*------------------------------------------------------------------------------------------------*-
** 函数名称:UINT mcu_ini()
** 函数功能:单片机初始化
** 入口参数:无
** 出口参数:无
** 全局变量:PCONP_Val值在config.h文件中设置
**------------------------------------------------------------------------------------------------*/      
UINT mcu_ini()
{    
    PLL_set();  
    MAM_set();
    PCONP = PCONP_Val;  
    
    return 1;    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -