gpio.c

来自「智能卡的驱动程序,兼容iso-7817标准」· C语言 代码 · 共 110 行

C
110
字号
/*==============================================================================*/
/*  file name   : gpio.c		(ecr's gpio user  basic function)				*/
/*	compiler	: SPARC-RTEMS-GCC												*/
/*	author	  	: mr.zhou														*/
/*	copyright	: ORBITA Co.,Ltd.  All Right Reserved.At 2005-9-2				*/
/*==============================================================================*/

#include "System.h"
#include"gpio.h"

/************************************************************************/
/*	Description:														*/
/*     This function main do gpio direct register bit,					*/
/*     set a bit of  gpio enable or disable;							*/
/*	Parameters:															*/
/*     BYTE  gpio_num        this erc system include 3 gpio port		*/
/*     DWORD io_bit          the bit of gpio							*/
/*     BYTE  enable_dis      set this bit enable or disable --> 1 or 0	*/
/*	Return:																*/
/*     none																*/
/*	Syntax:																*/
/*     void Set_Gpio_Direct_Reg(BYTE gpio_num,							*/
/*                              DWORD io_bit,							*/
/*                              BYTE enable_dis)						*/
/************************************************************************/

void Set_Gpio_Direct_Reg(BYTE gpio_num,DWORD io_bit,BYTE enable_dis)
{
       DWORD temp_gpio;
    
       switch(gpio_num)
       {
       	   case GPI0_DIRECT:  {_Get_Reg_Value(temp_gpio , GPI0_DIR_REG);     break;}
       	   case GPI1_DIRECT:  {_Get_Reg_Value(temp_gpio , GPI1_DIR_REG);     break;}
       	   case GPI2_DIRECT:  {_Get_Reg_Value(temp_gpio , GPI2_DIR_REG);     break;} 
       	   default: return;   
       }
       
       if(enable_dis == ENABLE )
       {
                
                temp_gpio = temp_gpio | io_bit;
                
       }
       else if(enable_dis == DISABLE)
       {
       	       temp_gpio = temp_gpio & (~io_bit);
       }

       switch(gpio_num)
       {
       	   case GPI0_DIRECT:  {_Set_Reg_Value (GPI0_DIR_REG,temp_gpio) ;     break;}
       	   case GPI1_DIRECT:  {_Set_Reg_Value (GPI1_DIR_REG,temp_gpio) ;     break;}
       	   case GPI2_DIRECT:  {_Set_Reg_Value (GPI2_DIR_REG,temp_gpio) ;     break;} 
       	   default: return;   
       }      
}



/************************************************************************/
/*	Description:														*/
/*     This function main do gpio data register bit,					*/
/*     set a bit of gpio enable or disable;								*/
/*	Parameters:															*/
/*     BYTE  gpio_num        gpio direct register bit					*/
/*     DWORD io_bit          the bit of gpio							*/
/*     BYTE  enable_dis      set this bit enable or disable --> 1 or 0	*/
/*	Return:																*/
/*     none																*/
/*	Syntax:																*/
/*     void Set_Gpio_Data_Reg  (BYTE gpio_num,							*/
/*                              DWORD io_bit,							*/
/*                              BYTE enable_dis)						*/
/************************************************************************/

void Set_Gpio_Data_Reg(BYTE gpio_num,DWORD io_bit,BYTE enable_dis)
{
       DWORD temp_gpio;
    
       switch(gpio_num)
       {
       	   case GPI0_DATA:  {_Get_Reg_Value(temp_gpio , GPI0_DATA_REG);     break;}
       	   case GPI1_DATA:  {_Get_Reg_Value(temp_gpio , GPI1_DATA_REG);     break;}
       	   case GPI2_DATA:  {_Get_Reg_Value(temp_gpio , GPI2_DATA_REG);     break;} 
       	   default: return;   
       }
       
       if(enable_dis == ENABLE )
       {
                
                temp_gpio = temp_gpio | io_bit;
                
       }
       else if(enable_dis == DISABLE)
       {
       	       temp_gpio = temp_gpio & (~io_bit);
       }

       switch(gpio_num)
       {
       	   case GPI0_DATA:  {_Set_Reg_Value (GPI0_DATA_REG,temp_gpio) ;     break;}
       	   case GPI1_DATA:  {_Set_Reg_Value (GPI1_DATA_REG,temp_gpio) ;     break;}
       	   case GPI2_DATA:  {_Set_Reg_Value (GPI2_DATA_REG,temp_gpio) ;     break;} 
       	   default: return;   
       }      
}


⌨️ 快捷键说明

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