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

📄 hal_pio.c

📁 最新版IAR FOR ARM(EWARM)5.11中的代码例子
💻 C
📖 第 1 页 / 共 2 页
字号:
/*        Input      :  uint16_t port_no, uint8_t bit_no,            */
/*                      uint8_t bit_data                             */
/*        Output     :  int16_t HAL_OK(1)                            */
/*                            HAL_PARAM_ERROR(-2)                    */
/*   Note            : Pio  out bit data set.                        */
/*                                                                   */
/*********************************************************************/
int16_t HalPio_PioOutBitData(uint16_t port_no, uint8_t bit_no, uint8_t bit_data)
{
    int16_t rtnVal = HAL_OK;
    PORT_BIT *port_bit=NULL;

    if ((bit_data != 0)&&(bit_data != 1)){
         rtnVal = HAL_PARAM_ERROR;
    }

    switch (port_no) {
    case PA:
        port_bit = (PORT_BIT *)PO0;
        break;
    case PB:
        port_bit = (PORT_BIT *)PO1;
        break;
    case PC:
        port_bit = (PORT_BIT *)PO2;
        break;
    case PD:
        port_bit = (PORT_BIT *)PO3;
        break;
    case PE:
        port_bit = (PORT_BIT *)PO4;
        break;
    case PF:
        port_bit = (PORT_BIT *)PO5;
        break;
    case PG:
        port_bit = (PORT_BIT *)PO6;
        break;
    case PH:
        port_bit = (PORT_BIT *)PO7;
        break;
    default :
        rtnVal = HAL_PARAM_ERROR;
        break;
    }
    
    if (rtnVal == HAL_OK) {
        switch (bit_no) {
        case BIT0:
            port_bit->bit0 = bit_data;
            break;
        case BIT1:
            port_bit->bit1 = bit_data;
            break;
        case BIT2:
            port_bit->bit2 = bit_data;
            break;
        case BIT3:
            port_bit->bit3 = bit_data;
            break;
        case BIT4:
            port_bit->bit4 = bit_data;
            break;
        case BIT5:
            port_bit->bit5 = bit_data;
            break;
        case BIT6:
            port_bit->bit6 = bit_data;
            break;
        case BIT7:
            port_bit->bit7 = bit_data;
            break;
        default :
            rtnVal = HAL_PARAM_ERROR;
            break;
        }
    }

    return rtnVal;
}
/*********************************************************************/
/*                                                                   */
/*    Function Name  :   HalPio_PioOutData                           */
/*        Input      :  uint16_t port_no, uint8_t *data              */
/*        Output     :  int16_t HAL_OK(1)                            */
/*                            HAL_PARAM_ERROR(-2)                    */
/*   Note            : Pio  input set.                               */
/*                                                                   */
/*********************************************************************/
int16_t HalPio_PioInData(uint16_t port_no, uint8_t *data)
{
    int16_t rtnVal = HAL_OK;

    if (data == NULL) {
        rtnVal =  HAL_PARAM_ERROR;
    }

    if (rtnVal == HAL_OK) {
        switch (port_no){
        case PA:
            *data = OkiCLib_read8(PI0);
            break;                                    /* GPIO0 input read */
        case PB:
            *data = OkiCLib_read8(PI1);
            break;                                    /* GPIO1 input read */
        case PC:
            *data = OkiCLib_read8(PI2);
            break;                                    /* GPIO2 input read */
        case PD:
            *data = OkiCLib_read8(PI3);
            break;                                    /* GPIO3 input read */
        case PE:
            *data = OkiCLib_read8(PI4);
            break;                                    /* GPIO4 input read */
        case PF:
            *data = OkiCLib_read8(PI5);
            break;                                    /* GPIO5 input read */
        case PG:
            *data = OkiCLib_read8(PI6);
            break;                                    /* GPIO6 input read */
        case PH:
            *data = OkiCLib_read8(PI7);
            break;                                    /* GPIO7 input read */
        default :
            rtnVal = HAL_PARAM_ERROR;
            break;
        }
    }

    return rtnVal;
}
/*********************************************************************/
/*                                                                   */
/*    Function Name  :   HalPio_PioOutBitData                        */
/*        Input      :  uint16_t port_no, uint8_t bit_no,            */
/*                      uint8_t *bit_data                            */
/*        Output     :  int16_t HAL_OK(1)                            */
/*                            HAL_PARAM_ERROR(-2)                    */
/*   Note            : Pio  input read  bit_data                     */
/*                                                                   */
/*********************************************************************/
int16_t HalPio_PioInBitData(uint16_t port_no, uint8_t bit_no, uint8_t *bit_data)
{
    int16_t rtnVal = HAL_OK;
    PORT_BIT *port_bit=NULL;
    
    if (bit_data == NULL) {
        rtnVal =  HAL_PARAM_ERROR;
    }
    
    switch (port_no) {
    case PA:
        port_bit = (PORT_BIT *)PI0;
        break;
    case PB:
        port_bit = (PORT_BIT *)PI1;
        break;
    case PC:
        port_bit = (PORT_BIT *)PI2;
        break;
    case PD:
        port_bit = (PORT_BIT *)PI3;
        break;
    case PE:
        port_bit = (PORT_BIT *)PI4;
        break;
    case PF:
        port_bit = (PORT_BIT *)PI5;
        break;
    case PG:
        port_bit = (PORT_BIT *)PI6;
        break;
    case PH:
        port_bit = (PORT_BIT *)PI7;
        break;
    default :
        rtnVal = HAL_PARAM_ERROR;
        break;
    }

    if (rtnVal == HAL_OK) {
        switch (bit_no) {
        case BIT0:
            *bit_data = port_bit->bit0;
            break;
        case BIT1:
            *bit_data = port_bit->bit1;
            break;
        case BIT2:
            *bit_data = port_bit->bit2;
            break;
        case BIT3:
            *bit_data = port_bit->bit3;
            break;
        case BIT4:
            *bit_data = port_bit->bit4;
            break;
        case BIT5:
            *bit_data = port_bit->bit5;
            break;
        case BIT6:
            *bit_data = port_bit->bit6;
            break;
        case BIT7:
            *bit_data = port_bit->bit7;
            break;
        default :
            rtnVal = HAL_PARAM_ERROR;
            break;
        }
    }

    return rtnVal;
}

⌨️ 快捷键说明

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