?? ket interrupt .c
字號:
#include "def.h"
#include "2410addr.h"
#include "2410lib.h"
#include "2410slib.h"
#include "mmu.h"
#include "uart.h"
#include "timer.h"
#include "rtcapi.h"
void ClearEINTPending(int bit)
{
rSRCPND = bit;
rINTPND = bit;
}
void IntInit()
{
rGPFCON &= 0xFFCC; //鍵盤控制寄存器
rGPFCON |= 0x22;
rGPGCON &= 0xFF3FFF3F;
rGPGCON |= 0x800080;
rGPEDAT &= 0XD7FF; //列清0
rGPGDAT &= 0XFFBB;
rEXTINT0 &=0xFFFE38; //設(shè)置觸發(fā)方式
rEXTINT1 &=0x8FFF;
rEXTINT2 &=0x8FFF;
rEXTINT2 |=0x8000;
rINTMSK &= 0xFFFFFFDA; //設(shè)置中斷掩碼
rEINTMASK &=0xF7F7FF;
}
void __irq service()
{
if( rINTPND & 1 )
{
puts("key 1\n");
ClearPending(BIT_EINT0);
}
else if( rINTPND & 4 )
{
puts("key 2\n");
ClearPending(BIT_EINT2);
}
else if( rINTPND & 0x20 )
{
if(rEINTPEND & 0x800)
{
puts("key 3\n");
rEINTPEND &= 0x800;
ClearPending(BIT_EINT8_23);
}
if(rEINTPEND & 1<<19)
{
puts("key 4\n");
rEINTPEND &= 1<<19;
ClearPending(BIT_EINT8_23);
}
}
DisableIrq(BIT_EINT0 | BIT_EINT2);
rEINTMASK |= ( (1<<11)|(1<<19) );
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -