📄 hal_pio.c
字号:
/************************************************************************/
/* */
/* Copyright (C) 2006 Oki Electric Industry Co., LTD. */
/* */
/* System Name : uPLAT7D series */
/* Module Name : uPLAT7D pio HAL program */
/* File Name : hal_pio.c */
/* Date : 2005/12/14 initial version */
/* */
/************************************************************************/
#include "common.h"
#if defined(__arm)
#include "ml675050.h"
#else
#include "ml675050sim.h"
#endif
#include "hal_common.h"
#include "hal_state.h"
#include "hal_pio.h"
/*********************************************************************/
/* */
/* Function Name : HalPio_PioSetFunction */
/* Input : struct uPLAT_PioFunctionParam */
/* Output : void */
/* Note : Setfunctione pio. */
/* */
/*********************************************************************/
void HalPio_PioSetFunction(uPLAT_PioFunctionParam *param)
{
/* Port control register 1 */
OkiCLib_write32(PORTSEL1, param->port_sel1);
/* Port control register 2 */
OkiCLib_write32(PORTSEL2, param->port_sel2);
/* Port control register 3 */
OkiCLib_write32(PORTSEL3, param->port_sel3);
/* Port control register 4 */
OkiCLib_write32(PORTSEL4, param->port_sel4);
}
/*********************************************************************/
/* */
/* Function Name : HalPio_PioGetFunction */
/* Input : struct uPLAT_PioFunctionParam */
/* Output : void */
/* */
/* Note : Getfunctione pio. */
/* */
/*********************************************************************/
int16_t HalPio_PioGetFunction(uPLAT_PioFunctionParam *param)
{
int16_t rtnVal = HAL_OK;
if (param == NULL) {
rtnVal = HAL_PARAM_ERROR;
}
if(rtnVal == HAL_OK){
/* Port control register 1 */
param->port_sel1 = OkiCLib_read32(PORTSEL1);
/* Port control register 2 */
param->port_sel2 = OkiCLib_read32(PORTSEL2);
/* Port control register 3 */
param->port_sel3 = OkiCLib_read32(PORTSEL3);
/* Port control register 4 */
param->port_sel4 = OkiCLib_read32(PORTSEL4);
}
return rtnVal;
}
/*********************************************************************/
/* */
/* Function Name : HalPio_PioSetIo */
/* Input : uint16_t port_no, uint8_t port_io */
/* Output : int16_t HAL_OK(1) */
/* HAL_PARAM_ERROR(-2) */
/* Note : Pio set io. */
/* */
/*********************************************************************/
int16_t HalPio_PioSetIo(uint16_t port_no, uint8_t port_io)
{
int16_t rtnVal = HAL_OK;
switch (port_no) {
case PA:
OkiCLib_write8(PM0, port_io);
break; /* GPIO0 mode set */
case PB:
OkiCLib_write8(PM1, port_io);
break; /* GPIO1 mode set */
case PC:
OkiCLib_write8(PM2, port_io);
break; /* GPIO2 mode set */
case PD:
OkiCLib_write8(PM3, port_io);
break; /* GPIO3 mode set */
case PE:
OkiCLib_write8(PM4, port_io);
break; /* GPIO4 mode set */
case PF:
OkiCLib_write8(PM5, port_io);
break; /* GPIO5 mode set */
case PG:
OkiCLib_write8(PM6, port_io);
break; /* GPIO6 mode set */
case PH:
OkiCLib_write8(PM7, port_io);
break; /* GPIO7 mode set */
default:
rtnVal = HAL_PARAM_ERROR;
break;
}
return rtnVal;
}
/*********************************************************************/
/* */
/* Function Name : HalPio_PioReadIo */
/* Input : uint16_t port_no, uint8_t *port_io */
/* Output : int16_t HAL_OK(1) */
/* HAL_PARAM_ERROR(-2) */
/* Note : Pio set io read. */
/* */
/*********************************************************************/
int16_t HalPio_PioReadIo(uint16_t port_no, uint8_t *port_io )
{
int16_t rtnVal = HAL_OK;
if (port_io == NULL) {
rtnVal = HAL_PARAM_ERROR;
}
if(rtnVal == HAL_OK){
switch (port_no) {
case PA:
*port_io = OkiCLib_read8(PM0);
break; /* Read GPIO0 mode */
case PB:
*port_io = OkiCLib_read8(PM1);
break; /* Read GPIO1 mode */
case PC:
*port_io = OkiCLib_read8(PM2);
break; /* Read GPIO2 mode */
case PD:
*port_io = OkiCLib_read8(PM3);
break; /* Read GPIO3 mode */
case PE:
*port_io = OkiCLib_read8(PM4);
break; /* Read GPIO4 mode */
case PF:
*port_io = OkiCLib_read8(PM5);
break; /* Read GPIO5 mode */
case PG:
*port_io = OkiCLib_read8(PM6);
break; /* Read GPIO6 mode */
case PH:
*port_io = OkiCLib_read8(PM7);
break; /* Read GPIO7 mode */
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 output set. */
/* */
/*********************************************************************/
int16_t HalPio_PioOutData(uint16_t port_no, uint8_t data)
{
int16_t rtnVal = HAL_OK;
switch (port_no) {
case PA:
OkiCLib_write8(PO0, data);
break; /* GPIO0 output set */
case PB:
OkiCLib_write8(PO1, data);
break; /* GPIO1 output set */
case PC:
OkiCLib_write8(PO2, data);
break; /* GPIO2 output set */
case PD:
OkiCLib_write8(PO3, data);
break; /* GPIO3 output set */
case PE:
OkiCLib_write8(PO4, data);
break; /* GPIO4 output set */
case PF:
OkiCLib_write8(PO5, data);
break; /* GPIO5 output set */
case PG:
OkiCLib_write8(PO6, data);
break; /* GPIO6 output set */
case PH:
OkiCLib_write8(PO7, data);
break; /* GPIO7 output set */
default:
rtnVal = HAL_PARAM_ERROR;
break;
}
return rtnVal;
}
/*********************************************************************/
/* */
/* Function Name : HalPio_PioOutBitData */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -