📄 mcu.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 + -