Lex 3I510CW Manual page 47

667/800 mhz fsb / vga / lan / audio / mini pci / pcie mini card
Table of Contents

Advertisement

Set output value
void F75111::InterDigitalOutput(BYTE byteValue)
{
BYTE byteData = 0;
byteData = (byteData & 0x01 )? byteValue + 0x01 : byteValue;
byteData = (byteData & 0x02 )? byteValue + 0x02 : byteValue;
byteData = (byteData & 0x04 )? byteValue + 0x04 : byteValue;
byteData = (byteData & 0x80 )? byteValue + 0x08 : byteValue;
byteData = (byteData & 0x40 )? byteValue + 0x10 : byteValue;
byteData = (byteData & 0x20 )? byteValue + 0x20 : byteValue;
byteData = (byteData & 0x10 )? byteValue + 0x40 : byteValue;
byteData = (byteData & 0x08 )? byteValue + 0x80 : byteValue;
this->Write_Byte(F75111_INTERNAL_ADDR,GPIO2X_OUTPUT_DATA,byteData); // write byteData value via GPIO2X output pin
}
Get Input value
BYTE F75111::InterDigitalInput()
{
BYTE byteGPIO1X = 0;
BYTE byteGPIO3X = 0;
BYTE byteData = 0;
this->Read_Byte(F75111_INTERNAL_ADDR,GPIO1X_INPUT_DATA,&byteGPIO1X) ; // Get value from GPIO1X
this->Read_Byte(F75111_INTERNAL_ADDR,GPIO3X_INPUT_DATA,&byteGPIO3X) ; // Get value from GPIO3X
byteGPIO1X = byteGPIO1X & 0xF0;
byteGPIO3X = byteGPIO3X & 0x0F;
byteData = ( byteGPIO1X & 0x10 )? byteData + 0x01 : byteData;
byteData = ( byteGPIO1X & 0x80 )? byteData + 0x02 : byteData;
byteData = ( byteGPIO1X & 0x40 )? byteData + 0x04 : byteData;
byteData = ( byteGPIO3X & 0x01 )? byteData + 0x08 : byteData;
byteData = ( byteGPIO3X & 0x02 )? byteData + 0x10 : byteData;
byteData = ( byteGPIO3X & 0x04 )? byteData + 0x20 : byteData;
byteData = ( byteGPIO3X & 0x08 )? byteData + 0x40 : byteData;
byteData = ( byteGPIO1X & 0x20 )? byteData + 0x80 : byteData;
return byteData;
}
// get value bit by bit
// Mask unuseful value
// Mask unuseful value
// Get correct DI value from GPIO1X & GPIO3X
45

Advertisement

Table of Contents
loading

This manual is also suitable for:

3i510aw3i525cw3i525aw

Table of Contents