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

📄 hw.c

📁 《OSEK/VDX汽车电子嵌入式软件编程技术》中光盘的资料
💻 C
字号:
/************************************************
*
*	$Copyright    2001 Joseph J. Lemieux  ALL RIGHTS RESERVED. $
*
*	$Filename: C:\OSEKBook\src\CH04\src\hw.c $
*
*	Description: Hardware Interface Drivers	
*
************************************************/
#ifndef HWC
#define HWC

/************************************************
*
*	Include files
*
************************************************/

#include "typedefs.h"
#include "hw.h"

/************************************************
*
*	Local macros
*
************************************************/

/************************************************
*
*	Local type definitions
*
************************************************/

/************************************************
*
*	Local Function Prototypes
*
************************************************/

/************************************************
*
*	Local Variables
*
************************************************/

/************************************************
*
*	Local Constants
*
************************************************/

/************************************************
*
*	Functions
*
************************************************/

/************************************************
*
*   Function:     HWGetValue
*
*   Inputs:       *hardware - reference to a constant structure
*                 that contains the type of hardware to be checked
*
*   Outputs:      none
*
*   Returns:      Current value of the hardware port.
*
*   Description:  Obtains the current state of a hardware port
*                 and returns it.
*
************************************************/
UINT32 HWGetValue(void *hardware)
{
   UINT32 value=0;
   KEYPAD_TRANSLATION_TYPE *trans;

	if(((HW_KEYPAD_INPUT_TYPE *)hardware)->type == HWKEYPAD)
   {
      value = *((HW_KEYPAD_INPUT_TYPE *)hardware)->port;
      value = (value & ((HW_KEYPAD_INPUT_TYPE *)hardware)->mask)>>((HW_KEYPAD_INPUT_TYPE *)hardware)->shift;
      trans = ((HW_KEYPAD_INPUT_TYPE *)hardware)->translation;
      while(trans->output != 0xFF)
      {
         if(trans->input == value)
         {
            break;
         }
         trans++;
      }
      if((value = trans->output) == 0xFF)
      {
         value = 0;
      }
   }
   return value;
}
#endif /* HWC */

⌨️ 快捷键说明

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