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

📄 irq.c

📁 智能卡的驱动程序,兼容iso-7817标准
💻 C
字号:
/*==============================================================================*/
/*  file name   : irq.c		(the function of do things to Interrupt bit)		*/
/*	compiler	: SPARC-RTEMS-GCC												*/
/*	author	  	: mr.zhou														*/
/*	copyright	: ORBITA Co.,Ltd.  All Right Reserved.At 2005-9-2				*/
/*==============================================================================*/

#include"System.h"
#include"irq.h"


/************************************************************************/
/*	Description:														*/
/*     This function main do interrupt register bit,					*/
/*     set a bit of  interrupt enable or disable;						*/
/*	Parameters:															*/
/*     BYTE int_name,       interrupt vector name						*/
/*     DWORD int_bit,       the bit of interrupt						*/
/*     BYTE enable_dis      set this bit enable or disable --> 1 or 0	*/
/*	Return:																*/
/*     none																*/
/*	Syntax:																*/
/*	void Set_Interrupt_Bit(BYTE int_name,								*/
/*                       DWORD int_bit,									*/
/*                       BYTE enable_dis)								*/
/************************************************************************/

void Set_Interrupt_Bit(BYTE int_name,DWORD int_bit,BYTE enable_dis)
{
       DWORD temp_int;
    
       switch(int_name)
       {
       	   case SEC_INT_CLEAR: _Get_Reg_Value(temp_int , SEC_INT_CLEAR_REG);    break;
       	   case SEC_INT_PEND:  _Get_Reg_Value(temp_int , SEC_INT_PEND_REG );    break;
       	   case SEC_INT_MASK:  _Get_Reg_Value(temp_int , SEC_INT_MASK_REG );    break;  
       	   case PRI_INT_CLEAR: _Get_Reg_Value(temp_int , INT_CLEAR_REG    );    break;  
       	   case PRI_INT_PEND:  _Get_Reg_Value(temp_int , INT_PEND_REG     );    break;  
       	   case PRI_INT_MASK:  _Get_Reg_Value(temp_int , INT_MASK_REG     );    break;  
       	   
       	   default: return;   
       } 
       
       if(enable_dis == ENABLE )
       {
                
                temp_int = temp_int | int_bit;
                
       }
       else if(enable_dis == DISABLE)
       {
       	       temp_int = temp_int & (~int_bit);
       }
       
       switch(int_name)
       {
       	   case SEC_INT_CLEAR: _Set_Reg_Value( SEC_INT_CLEAR_REG, temp_int );     break;
       	   case SEC_INT_PEND:  _Set_Reg_Value( SEC_INT_PEND_REG , temp_int );     break;
       	   case SEC_INT_MASK:  _Set_Reg_Value( SEC_INT_MASK_REG , temp_int );     break;  
       	   case PRI_INT_CLEAR: _Set_Reg_Value( INT_CLEAR_REG    , temp_int );     break;  
       	   case PRI_INT_PEND:  _Set_Reg_Value( INT_PEND_REG     , temp_int );     break;  
       	   case PRI_INT_MASK:  _Set_Reg_Value( INT_MASK_REG     , temp_int );     break;  
       	   
       	   default: return;   
       } 
}


⌨️ 快捷键说明

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