裸机程序中或许用到的文件以及函数
#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《
}
/**********************************************************************************