📄 drv_pio.c
字号:
/************************************************************************/
/* */
/* Copyright (C) 2006 Oki Electric Industry Co., LTD. */
/* */
/* System Name : uPLAT7D series */
/* Module Name : uPLAT7D pio drivers program */
/* File Name : drv_pio.c */
/* Date : 2005/12/14 initial version */
/* */
/************************************************************************/
#include "common.h"
#include "hal_api.h"
#include "drv_common.h"
#include "drv_pio.h"
/************************************************************************/
/* */
/* Function Name : smpDrv_IoctlPio */
/* Input : cmd The number of PIO HAL-API. */
/* arg The argument of Timer HAL-API. */
/* Output : DRV_OK(1) */
/* : DRV_PARAM_ERROR(-2) */
/* */
/* Note : Control the hal of pio. */
/* */
/************************************************************************/
int16_t smpDrv_IoctlPio(uint16_t cmd, uint32_t arg) {
int16_t rtnVal = DRV_OK;
struct PioSetIo{
uint16_t port_no;
uint8_t port_io;
} *pio_set_io;
struct PioReadIo{
uint16_t port_no;
uint8_t *port_io;
} *pio_read_io;
struct PioOutData{
uint16_t port_no;
uint8_t data;
} *pio_out_data;
struct PioOutBitData{
uint16_t port_no;
uint8_t bit_no;
uint8_t bit_data;
} *pio_out_bit_data;
struct PioInData{
uint16_t port_no;
uint8_t *data;
} *pio_in_data;
struct PioInBitData{
uint16_t port_no;
uint8_t bit_no;
uint8_t *bit_data;
} *pio_in_bit_data;
switch (cmd) {
case UPLAT_7D_HAL_PIO_SET_FUNCTION:
rtnVal = uplat7dHAL_PioSetFunction((uPLAT_PioFunctionParam *)arg);
break;
case UPLAT_7D_HAL_PIO_GET_FUNCTION:
rtnVal = uplat7dHAL_PioGetFunction((uPLAT_PioFunctionParam *)arg);
break;
case UPLAT_7D_HAL_PIO_SET_IO:
pio_set_io = (struct PioSetIo *)arg;
rtnVal = uplat7dHAL_PioSetIo(pio_set_io->port_no, pio_set_io->port_io);
break;
case UPLAT_7D_HAL_PIO_READ_IO:
pio_read_io = (struct PioReadIo *)arg;
rtnVal = uplat7dHAL_PioReadIo(pio_read_io->port_no, pio_read_io->port_io);
break;
case UPLAT_7D_HAL_PIO_OUT_DATA:
pio_out_data = (struct PioOutData *)arg;
rtnVal = uplat7dHAL_PioOutData(pio_out_data->port_no, pio_out_data->data);
break;
case UPLAT_7D_HAL_PIO_OUT_BIT_DATA:
pio_out_bit_data = (struct PioOutBitData *)arg;
rtnVal = uplat7dHAL_PioOutBitData(pio_out_bit_data->port_no, pio_out_bit_data->bit_no, pio_out_bit_data->bit_data);
break;
case UPLAT_7D_HAL_PIO_IN_DATA:
pio_in_data = (struct PioInData *)arg;
rtnVal = uplat7dHAL_PioInData(pio_in_data->port_no, pio_in_data->data);
break;
case UPLAT_7D_HAL_PIO_INI_BIT_DATA:
pio_in_bit_data = (struct PioInBitData *)arg;
rtnVal = uplat7dHAL_PioInBitData(pio_in_bit_data->port_no, pio_in_bit_data->bit_no, pio_in_bit_data->bit_data);
break;
default :
rtnVal = DRV_PARAM_ERROR;
break;
}
return rtnVal;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -