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

📄 arminterrupt.c

📁 中芯微VC0528测试程序
💻 C
字号:
#include "def.h"
#include "44b.h"
#include "44blib.h"

#include "ArmIntControl.h"
#include "ArmInterrupt.h"



void __irq Exint1(void);		//For deal command.
void __irq Exint0(void);
#if(KEYBOARD_INTERRUPT==1)
void __irq Exint2(void);
void __irq Exint3(void);
void __irq Exint4567(void);
#endif

U8	flag928	=0;
U8	flag568  =0;

void 	ArmInitInt()
{
	rPCONG |= 0x03;			//Set GPIO as EXINT
	rEXTINT &= ~(0x0f);//low lever interrupt clear
	rEXTINT |= 0x02;//falling edge trigged
	pISR_EINT0 = (unsigned)Exint0;


	pISR_EINT1 = (unsigned)Exint1;

#if(KEYBOARD_INTERRUPT==1)
	pISR_EINT2 = (unsigned)Exint2;
	pISR_EINT3 = (unsigned)Exint3;
	pISR_EINT4567= (unsigned)Exint4567;
#endif


#if(KEYBOARD_INTERRUPT==1)
	rPCONG |= 0xC0;		//EINT3
	rPCONG |= 0x3ff0;		//EINT2,3,4,5,6

	rEXTINT &= ~(0xffff0f0);
	rEXTINT |= 0x2221040; 		//EINT3: High level, EINT1: High level
#else

 	rPCONG |= 0xc;		//EINT1

	rEXTINT &= ~(0xffffff0);
	rEXTINT |= 0x2222210; 		//EINT1: High level;  EINT2,3,4,5,6: Low Level
#endif

   	rPUPG=0x0;		//pull up enable	    

#if(KEYBOARD_INTERRUPT==1)
	Enable_Intr(nINT_EXT1);
//	Enable_Intr(nINT_EXT2);
//	Enable_Intr(nINT_EXT3);
//	Enable_Intr(nINT_EXT47);
#else
	Enable_Intr(nINT_EXT1);
#endif
}
void Exint0()
{
	rI_ISPC=BIT_EINT0;
	usb_isr();
}
void Exint1()
{
	rI_ISPC=BIT_EINT1;
}

#if(KEYBOARD_INTERRUPT==1)
void Exint2()
{	
	rI_ISPC=BIT_EINT2;
	Uart_Printf("EINT2.\n");
}

void Exint3()
{	
	rI_ISPC=BIT_EINT3;
}

void Exint4567()
{
	char which_int=0x00;

	which_int=rEXTINTPND;
	rEXTINTPND=0x0f;
	rI_ISPC=BIT_EINT4567;
	switch(which_int)
	{
		case 1:
			Uart_Printf("EINT4...\n");
			break;
		case 2:
			Uart_Printf("EINT5...\n");
			break;
		case 4:
			Uart_Printf("EINT6...\n");
			break;
	}
}
#endif


void DisableInterrupt(void)
{
	Disable_Intr(nINT_GLOBAL);
}

void EnableInterrupt(void)
{
	Enable_Intr(nINT_GLOBAL);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -