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

📄 hw.c

📁 《OSEK/VDX汽车电子嵌入式软件编程技术》中光盘的资料
💻 C
字号:
/************************************************
*
*	$Copyright    2001 Joseph J. Lemieux  ALL RIGHTS RESERVED. $
*
*	$Filename: C:\OSEKBook\src\CH13\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;

	switch(((HW_KEYPAD_INPUT_TYPE *)hardware)->type){
      case 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;
      }
         break;
      case HWDIGITAL16:
         if((*((HW_DIGITAL16_INPUT_TYPE *)hardware)->port & ((HW_DIGITAL16_INPUT_TYPE *)hardware)->mask)==0){
            value = INACTIVE;
         }
         else{
            value = ACTIVE;
         }
   }
   return value;
}
#endif /* HWC */

⌨️ 快捷键说明

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