\r
Dio_LevelType Dio_ReadChannel(Dio_ChannelType channelId)\r
{\r
- Dio_LevelType level = STD_LOW;\r
+ Dio_LevelType level;\r
VALIDATE_CHANNEL(channelId, DIO_READCHANNEL_ID);\r
- // Read level from SIU.\r
- if (SIU.GPDI [channelId].R)\r
- {\r
- level = STD_HIGH;\r
- } else\r
- {\r
- level = STD_LOW;\r
+ if (SIU.PCR[channelId].B.IBE) {\r
+ // Read level from SIU.\r
+ if (SIU.GPDI [channelId].R) {\r
+ level = STD_HIGH;\r
+ } else {\r
+ level = STD_LOW;\r
+ }\r
+ } else if(SIU.PCR[channelId].B.OBE) {\r
+ // Read level from SIU.\r
+ if (SIU.GPDO [channelId].R) {\r
+ level = STD_HIGH;\r
+ } else {\r
+ level = STD_LOW;\r
+ }\r
}\r
- \r
- cleanup: return (level);\r
+ #if ( DIO_DEV_ERROR_DETECT == STD_ON )\r
+ cleanup:\r
+ #endif\r
+ return (level);\r
}\r
\r
void Dio_WriteChannel(Dio_ChannelType channelId, Dio_LevelType level)\r
{\r
VALIDATE_CHANNEL(channelId, DIO_WRITECHANNEL_ID);\r
// Write level to SIU.\r
- SIU.GPDO [channelId].R = level;\r
+ if(SIU.PCR[channelId].B.OBE) {\r
+ SIU.GPDO [channelId].R = level;\r
+ }\r
- cleanup: return;\r
+ #if ( DIO_DEV_ERROR_DETECT == STD_ON )\r
+ cleanup:\r
+ #endif\r
+ return;\r
}\r
\r
Dio_PortLevelType Dio_ReadPort(Dio_PortType portId)\r