⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ket interrupt .c.bak

📁 2410bios 实现简单功能 裸板传输 跑马灯 定时器
💻 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 + -