裸机程序中可能用到的文件以及函数
#include“system.h”
/*************************************************************************************************************************
*函数:voidSetEINT_TriggerMode(u8EINT0_N,u8Trigger)
*功能:设置外部中断组0触发模式
*参数:EINT0_N:中断源的编号(见:中断组0编号定义);Trigger:触发模式(EXT_LowLevel:低电平触发;EXT_HighLevel:高电平触发;
EXT_NegEdge:下降沿触发;EXT_PosEdge:上升沿触发;EXT_Edge:边沿触发)
*返回:无
*依赖:底层宏定义
*作者:cp1300@139.com
*时间:20120304
*最后修改时间:20120304
*说明:编号GPN0---》GPN15GPL8---》GPL14GPM0---》GPM4,中断设置必须两个两个一起
*************************************************************************************************************************/
voidSetEINT0_TriggerMode(vu8EINT0_N,vu8Trigger)
{
if(EINT0_N&0x80)//EINT0CON1
{
EINT0_N-=0x80;//减去标记
rEINT0CON1&=~(7《
rEINT0CON1|=Trigger《
}
else//EINT0CON0
{
rEINT0CON0&=~(7《
rEINT0CON0|=Trigger《
}
}
/*************************************************************************************************************************
*函数:voidSet_GateClk(u8HCLK_DIV,FunctionalStateEnable)
*功能:CLK时钟门控设置(HCLK,PCLK,SCLK)
*参数:CLK_DIV:外设(见:CLK门控时钟定义);Enable=ENABLE,1使能;=DISABLE,0失能
*返回:无
*依赖:底层宏定义
*作者:cp1300@139.com
*时间:20120305
*最后修改时间:20121005
*说明:PCLK_GATE添加标识0x40,SCLK_GATE添加标示0x80;
*************************************************************************************************************************/
voidSet_GateClk(vu8CLK_DIV,FuncTIonalStateEnable)
{
vu32*P=&rHCLK_GATE;
if(CLK_DIV&0x80)//SCLK
{
P=&rSCLK_GATE;
CLK_DIV-=0x80;//去掉标示
}
elseif(CLK_DIV&0x40)//PCLK
{
P=&rPCLK_GATE;
CLK_DIV-=0x40;//去掉标示
}
if(Enable==ENABLE)//使能
*P|=1《
else//失能
*P&=~(1《
}
/*************************************************************************************************************************
*函数:voidSet_INTtoIRQ(u8INT_N)
*功能:设置一个中断为IRQ
*参数:INT_N:中断编号(见:中断源编号定义);
*返回:无
*依赖:底层宏定义
*作者:cp1300@139.com
*时间:20120305
*最后修改时间:20120305
*说明:设置一个中断为普通中断模式
*************************************************************************************************************************/
voidSet_INTtoIRQ(vu8INT_N)
{
if(INT_N》31)//VIC1
{
INT_N-=32;
VIC1-》INTSELECT&=~(1《
}
else//VIC0
VIC0-》INTSELECT&=~(1《
}
/*************************************************************************************************************************
*函数:voidSet_INTtoFIQ(u8INT_N)
*功能:设置一个中断为FIQ
*参数:INT_N:中断编号(见:中断源编号定义);
*返回:无
*依赖:底层宏定义
*作者:cp1300@139.com
*时间:20120305
*最后修改时间:20120305
*说明:设置一个中断为快速中断模式
*************************************************************************************************************************/
voidSet_INTtoFIQ(vu8INT_N)
{
if(INT_N》31)//VIC1
{
INT_N-=32;
VIC1-》INTSELECT|=(1《
}
else//VIC0
VIC0-》INTSELECT|=(1《
}
/**********************************************************************************