aic_test.c

来自「Embest ATEB40x开发板部分测试程序」· C语言 代码 · 共 78 行

C
78
字号
/*********************************************************************************************
*文件:		AIC_test.c
*公司:		深圳市英蓓特信息技术有限公司
*部门:		硬件研发部
*作者:		谢文辉	2005.04.06
*说明:		中断程序,实现中断功能.程序运行后通过按键SB3产生中断,板上的8个指示灯同时亮或同时暗
*注释:		
*********************************************************************************************/
#include	"AIC_test.h"

void Extirq(void) __attribute__((interrupt("IRQ")));

/*********************************************************************************************
* 名称:		TimeDly(uint32  dly)
* 功能:		长软件延时
* 参数:		dly    延时数,越大越长
* 返回:		无
* 修改:		
* 注释:		
*********************************************************************************************/
void  time_dly(uint32  dly)
{  
	uint32  i;

	for(; dly>0; dly--) 
		for(i=0; i<100; i++);
}

/*********************************************************************************************
* 名称:		Main()
* 功能:		主程序
* 参数:		无
* 返回:		无
* 修改:		
* 注释:		
*********************************************************************************************/
void Main()
{
	uint8	i, j;
	
	PIO->PER = LEDALL;		// 配制引脚与PIO关联
	
	PIO->PDR = P9;			// 配制中断0
	
	PIO->OER = LEDALL;		// 配制使用IO口为输出
	
	PIO->SODR= LEDALL;		// 灭灯	
	
	AIC->IDCR= P16;
	
	AIC->SVR[16] = (uint32)Extirq ;
	
	AIC->SMR[16] = 0x27;
	
	AIC->ICCR= P16;
	
	AIC->IECR= P16;			// 允许IRQ0中断
	
	while(1);
}

/*********************************************************************************************
* 名称:		Extirq(void)
* 功能:		中断处理程序
* 参数:		无
* 返回:		无
* 修改:		
* 注释:		
*********************************************************************************************/
void Extirq(void)
{
	if ((PIO->ODSR & LEDALL) == LEDALL)
		PIO->CODR = LEDALL ;
	else
		PIO->SODR = LEDALL ;
		
	AIC->EOICR = 0;
}

⌨️ 快捷键说明

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