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

📄 drv_pio.c

📁 最新版IAR FOR ARM(EWARM)5.11中的代码例子
💻 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 + -