\r
Dio_LevelType Dio_ReadChannel(Dio_ChannelType channelId)\r
{\r
- Dio_LevelType level;\r
+ Dio_LevelType level = STD_LOW;\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
}\r
\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
}\r
\r