public MCP342(MCP342xJumperState j1, MCP342xJumperState j2) { device = new I2CDevice(new I2CDevice.Configuration(CalculateAddress(j1, j2), CLOCK_RATE)); xConfigAction = new I2CDevice.I2CTransaction[1] { I2CDevice.CreateWriteTransaction(configReg) }; xReadAction = new I2CDevice.I2CTransaction[1] { I2CDevice.CreateReadTransaction(dataReg) }; CalculateParams(); }
public static ushort CalculateAddress(MCP342xJumperState j1, MCP342xJumperState j2) { ushort addressOffset = 0; if (j1 == MCP342xJumperState.Floating && j2 == MCP342xJumperState.Floating) { addressOffset = 0; } else if (j1 == MCP342xJumperState.Low && j2 == MCP342xJumperState.Low) { addressOffset = 0; } else if (j1 == MCP342xJumperState.Low && j2 == MCP342xJumperState.Floating) { addressOffset = 1; } else if (j1 == MCP342xJumperState.Low && j2 == MCP342xJumperState.High) { addressOffset = 2; } else if (j1 == MCP342xJumperState.High && j2 == MCP342xJumperState.Low) { addressOffset = 4; } else if (j1 == MCP342xJumperState.High && j2 == MCP342xJumperState.Floating) { addressOffset = 5; } else if (j1 == MCP342xJumperState.High && j2 == MCP342xJumperState.High) { addressOffset = 6; } else if (j1 == MCP342xJumperState.Floating && j2 == MCP342xJumperState.Low) { addressOffset = 3; } else if (j1 == MCP342xJumperState.Floating && j2 == MCP342xJumperState.High) { addressOffset = 7; } return((ushort)(addressOffset | ADDRESS_BASE)); // 1101xxx, xxx = addressOffset; (104...111) }
public static ushort CalculateAddress(MCP342xJumperState j1, MCP342xJumperState j2) { ushort addressOffset = 0; if (j1 == MCP342xJumperState.Floating && j2 == MCP342xJumperState.Floating) addressOffset = 0; else if (j1 == MCP342xJumperState.Low && j2 == MCP342xJumperState.Low) addressOffset = 0; else if (j1 == MCP342xJumperState.Low && j2 == MCP342xJumperState.Floating) addressOffset = 1; else if (j1 == MCP342xJumperState.Low && j2 == MCP342xJumperState.High) addressOffset = 2; else if (j1 == MCP342xJumperState.High && j2 == MCP342xJumperState.Low) addressOffset = 4; else if (j1 == MCP342xJumperState.High && j2 == MCP342xJumperState.Floating) addressOffset = 5; else if (j1 == MCP342xJumperState.High && j2 == MCP342xJumperState.High) addressOffset = 6; else if (j1 == MCP342xJumperState.Floating && j2 == MCP342xJumperState.Low) addressOffset = 3; else if (j1 == MCP342xJumperState.Floating && j2 == MCP342xJumperState.High) addressOffset = 7; return (ushort)(addressOffset | ADDRESS_BASE); // 1101xxx, xxx = addressOffset; (104...111) }
public MCP342(MCP342xJumperState j1, MCP342xJumperState j2) { device = new I2CDevice(new I2CDevice.Configuration(CalculateAddress(j1, j2), CLOCK_RATE)); xConfigAction = new I2CDevice.I2CTransaction[1] { I2CDevice.CreateWriteTransaction(configReg) }; xReadAction = new I2CDevice.I2CTransaction[1] { I2CDevice.CreateReadTransaction(dataReg) }; CalculateParams(); }
/// <summary> /// Connect to the device to set its initial settings and ensure correct address settings. /// </summary> /// <param name="j1">The state of J1 on the module.</param> /// <param name="j2">The state of J2 on the module.</param> /// <returns></returns> public bool Connect(MCP342xJumperState j1, MCP342xJumperState j2) { adc = new MCP342(j1, j2); if (adc.ReadConfiguration() == 0) return false; //adc.Channel = MCP342xChannel.Channel1; //adc.Gain = MCP342xGain.x1; //adc.Resolution = MCP324xResolution.SixteenBits; //adc.ConversionMode = MCP342xConversionMode.Continuous; isConnected = true; return true; }