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

📄 target.c

📁 用ARM7 LPC2292芯片驱动240128图形点阵液晶的源代码
💻 C
字号:
//============================================================================//
//文件:target.c
//描述:  NXP LPC21XX/22XX系列ARM7 MCU的系统初始化文件
//功能:初始化系统时钟、存储器加速、
//	
//参考:Copyright(C) 2006, Philips Semiconductor
//版本:2008/01/01  Ver1.00		Mzdesign   Edit By 小丑(smart_clown)
//维护:
//============================================================================//

#include "LPC22Xx.h"
#include "type.h"
#include "irq.h"
#include "target.h"



void TargetResetInit(void);
//============================================================================//
//函数:void IRQ_Exception(void)
//描述:IRQ中断函数,如必要加入自己所需的代码
//功能:
//	
//参数:无
//返回:无
//============================================================================//
void IRQ_Exception(void) __irq
{

    while(1);                   /*  change it to your code */
}
//============================================================================//
//函数:void IRQ_Exception(void)
//描述:FIQ中断函数,如必要加入自己所需的代码
//功能:
//	
//参数:无
//返回:无
//============================================================================//
//void FIQ_Exception(void) __fiq
//{
//    while(1);                   /* change it to your code */
//}
//============================================================================//
//函数:void TargetInit(void)
//描述:目标MCU初始化函数
//功能:建议为仅加入系统配置的初始化函数,该函数最好在工程的主程序当中首先调用
//		如有必要,可以自行加入其它的实始化代码
//	
//参数:无
//返回:无
//============================================================================//
void TargetInit(void)
{
	TargetResetInit();

    /* Add your codes here */
}
//============================================================================//
//函数:void TargetResetInit(void)
//描述:目标MCU系统配置初始化函数
//功能:初始化中断映射、PLL以及Flash Menory 加速选项,外部总线的初始化不在此
//备注:相关的定义可见Taget.h头文件
//参数:无
//返回:无
//============================================================================//
void TargetResetInit(void)
{
#ifdef __DEBUG_RAM    
    MEMMAP = 0x2;                   // set remap register 
#endif

#ifdef __DEBUG_FLASH    
    MEMMAP = 0x1;                   // set remap register 
#endif

#ifdef __IN_CHIP    
    MEMMAP = 0x1;                   // set remap register 
#endif

    // Set system timers for each component 
    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;
    
    // Set memory accelerater module
    MAMCR = 0;
#if Fcclk < 20000000
    MAMTIM = 1;
#else
#if Fcclk < 40000000
    MAMTIM = 2;
#else
    MAMTIM = 3;
#endif
#endif
    MAMCR = 2;
    
    // Add your codes here if necessary
    return;
}


⌨️ 快捷键说明

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