您的位置 首页 FPGA

根据S3C6410裸机程序中或许用到的函数共享

基于S3C6410裸机程序中可能用到的函数分享-*函数:voidSetEINT_TriggerMode(u8EINT0_N,u8Trigger)

*功能:设置外部中断组0触发模式

*参数:EINT0_N:中断源的编号(见:中断组0编号定义);Trigger:触发模式(EXT_LowLevel:低电平触发;EXT_HighLevel:高电平触发;

EXT_NegEdge:下降沿触发;EXT_PosEdge:上升沿触发;EXT_Edge:边沿触发)

裸机程序中或许用到的文件以及函数

#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《

}

/**********************************************************************************

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/347156.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部