isr.c

来自「两个文件夹:circuit and code ! code 源码包包括3个文件」· C语言 代码 · 共 67 行

C
67
字号
/**************************************************************************************************
 *                                                                          
 * Copyright (c) 2001 - 2003 Isteki Electronics (kunshan) Corp. All rights reserved.      
 *                                                                         
 * FILENAME
 *     isr.c
 *
 * VERSION
 *     1.0
 *
 * DESCRIPTION
 *     This file contains the IRQ exception handler 
 *
 * DATA STRUCTURES
 *     1. IRQ_HandlerTable[]
 *
 * FUNCTIONS
 *     1. Fun_SetIntISR()
 *     2. IRQ_IntHandler()
 *
 * HISTORY
 *     10/28/2003		 Ver 1.0 Created by Jim Lin
 *
 * REMARK
 *     None
 *     
 *************************************************************************************************/
#include "740defs.h"

/* Define HW_VECTOR_NUMBER when using AIC hardware priority encoding mechanism */
typedef	void (*fptr)();	   /* function pointer */
fptr IRQ_HandlerTable[19]; /* Interrupt Handler Table */

/************************************************/
/*	Name: 	Fun_SetIntISR						*/
/*	In:		vector		:pherial int number		*/		
/*			(*handler)():pherial int entry		*/
/*	Out:	None								*/
/*	Description: 								*/
/*			set every AIC interrupt entry		*/
/************************************************/
void Fun_SetIntISR(int vector, void (*handler)())
{
	/* install interrupt service routine */  
  IRQ_HandlerTable[vector] = handler;
}

/************************************************/
/*	Name: 	IRQ_IntHandler						*/
/*	In:		None								*/
/*	Out:	None								*/
/*	Description: 								*/
/*			this is IRQ interrutp service rutine*/
/************************************************/
__irq void IRQ_IntHandler(void)
{
  uint32 irqVect, irqNum;
  
//  while(1){;}

  irqVect= AIC_IPER;  		/* MUST read the IPER */ 
  irqNum = inpw(AIC_ISNR); 	/* read the interrupt source number */

  (*IRQ_HandlerTable[irqNum])();
  AIC_EOSCR = 0;            /* acknowledge AIC to report next interrupt request */
}

⌨️ 快捷键说明

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