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

📄 testeint.c

📁 ARM9.2的第二个程序!!!!!!!!!!!
💻 C
字号:
#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"

static void __irq EINT0_ISR(void)
{
 	rSRCPND |= (1<<0);
 	rINTPND |= (1<<0);
 	
 	Uart_Printf("EINT0  is occurred.\n");
}

static void __irq EINT2_ISR(void)

{
	rSRCPND |= (1<<2);
	rINTPND |= (1<<2);
	
	Uart_Printf("EINT2  is occurred.\n");
}

void xmain(void)
{
	ChangeClockDivider(3,1);
	ChangeMPllValue(127,2,1);		//405MHZ
	
	Isr_Init();
	Uart_Init(0, 115200);
	Uart_Select(0);
	Uart_Printf("the main is running.\n");
	//-----------------中断初始化----------------//
	//选择功能管脚
	rGPFCON = ( rGPFCON | (3<<0) ) & ( ~(1<<0) );//EINT0 -> GPF0
	rGPFCON = ( rGPFCON | (3<<4) ) & ( ~(1<<4) );//EINT2 -> GPF2
	//中断模式
	rINTMOD = rINTMOD & ( ~(1<<0) );//EINT0 IRQ mode
	rINTMOD = rINTMOD & ( ~(1<<2) );//EINT2 IRQ mode
	//触发方式
	rEXTINT0 = ( rEXTINT0 | (7<<0) ) & ( ~(4<<0) );//EINT0 falling edge triggered
	rEXTINT0 = ( rEXTINT0 | (7<<6) ) & ( ~(4<<6) );//EINT2 falling edge triggered
	//使能中断
	rINTMSK = rINTMSK & ( ~(1<<0) );//EINT0 interrupt service availalbe
	rINTMSK = rINTMSK & ( ~(1<<2) );//EINT2 interrupt service available
	//清中断
	rSRCPND |= (1<<0);//to clear EINT0
	rINTPND |= (1<<0);//
	
	rSRCPND |= (1<<2);//to clear EINT2
	rINTPND |= (1<<2);//
	//中断向量
	pISR_EINT0 = (U32)EINT0_ISR;//EINT0
	pISR_EINT2 = (U32)EINT2_ISR;//EINT2
	
	while(1)
	
	{
		Uart_Printf("the main is running.\n");
		Delay(1000000);
	}
}

⌨️ 快捷键说明

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