📄 ket interrupt .c.bak
字号:
#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; //设置触发方式
rEXTINT1 &=0x8FFF;
rEXTINT2 &=0x8FFF;
rEXTINT2 |=0x8000;
rINTMSK &= 0xFFFFFFDA; //设置中断掩码
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) );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -