a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > ARM9外部中斷功能測試

ARM9外部中斷功能測試

作者: 時間:2016-11-20 來源:網絡 收藏
* 文件名稱:EINT.c
* 實現功能:測試外部中斷的操作
* 作者:jianqi
* 版本:1.0


#include"2440addr.h" //包含2440相關寄存器的設置
#include"def.h"
#define LED1 5
#define LED2 6
#define LED3 7
#define LED4 8

#define KEY1 1
#define KEY2 4
#define KEY3 2
#define KEY4 0

#define Bit(x) (1<#define Output(x) (1<<2*x) //將對應IO置為輸出
#define LED_On(x) rGPBDAT=~Bit(x) //點亮對應LED

* 名稱:Key1_ISR
* 功能:key1控制LED1亮滅
* 入口參數:無
* 出口參數:無

void __irq Key1_ISR(void) //EINT1中斷服務程序
{
int led;
rSRCPND=rSRCPND|(0x01<<1); //清除中斷標志位
rINTPND=rINTPND |(0x01<<1); //清除中斷標志位
led=rGPBDAT&(0x1<if (led==0)
{
rGPBDAT=rGPBDAT|(0x1<}
else
{
rGPBDAT=rGPBDAT&~(0x1<}
}


* 名稱:Key2_ISR
* 功能:key2控制LED2亮滅
* 入口參數:無
* 出口參數:無

void __irq Key2_ISR(void) //EINT4中斷服務程序
{
int led;
rSRCPND=rSRCPND|(0x01<<4); //清除中斷標志位
rINTPND=rINTPND |(0x01<<4);//清除中斷標志位
if(rEINTPEND&(1<<4))
{
rEINTPEND=rEINTPEND|(0x1<<4); //清除中斷標志位
led=rGPBDAT&(0x1<if (led ==0)
{
rGPBDAT=rGPBDAT|(0x1<}
else
{
rGPBDAT=rGPBDAT&~(0x1<}
}
}


* 名稱:Key3_ISR
* 功能:key3控制LED3亮滅
* 入口參數:無
* 出口參數:無

void __irq Key3_ISR(void) //EINT2中斷服務程序
{
int led;
rSRCPND=rSRCPND|(0x01<<2); //清除中斷標志位
rINTPND=rINTPND |(0x01<<2); //清除中斷標志位
led=rGPBDAT&(0x1<if (led==0)
{
rGPBDAT=rGPBDAT|(0x1<}
else
{
rGPBDAT=rGPBDAT&~(0x1<}
}


* 名稱:Key4_ISR
* 功能:key4控制LED4亮滅
* 入口參數:無
* 出口參數:無

void __irq Key4_ISR(void) //EINT0中斷服務程序
{
int led;
rSRCPND=rSRCPND|0x1; //清除中斷標志位
rINTPND=rINTPND |0x1; //清除中斷標志位
led=rGPBDAT&(0x1<if(led==0)
{
rGPBDAT=rGPBDAT|(0x1<}
else
{
rGPBDAT=rGPBDAT&~(0x1<}
}

* 名稱:Main
* 功能:初始化外部中斷相關寄存器
* 入口參數:無
* 出口參數:無

void Main(void)
{
rGPBCON=(1<<2*LED1)|(1<<2*LED2)|(1<<2*LED3)|(1<<2*LED4);//設置四個LED為輸出
rGPBDAT=0xffff; //全部熄滅
rGPFCON=0xaaaa; //0~7外部中斷
rEXTINT0=0x20222; //下降沿中斷
rEINTMASK=~(1<<4); //不屏蔽外部中斷0,1,2,4
rEINTPEND=(1<<4); //0,1,2,4產生中斷
rSRCPND=0x17; //外部中斷
rINTPND=0x17; //外部中斷使能
rINTMOD=0x00; //全部為IRQ中斷
rINTMSK=~0x17; //不屏蔽外部中斷
pISR_EINT0=(U32)Key4_ISR;
pISR_EINT1=(U32)Key1_ISR;
pISR_EINT2=(U32)Key3_ISR;
pISR_EINT4_7=(U32)Key2_ISR;

while(1)
{
;
}
}


評論


技術專區

關閉