/// <summary> /// Create an AD5593R DAC output. /// </summary> /// <param name="dev">AD5593R device object.</param> /// <param name="channel">AD5593R I/O channel number (0 to 7).</param> /// <param name="sample">Initial DAC output sample.</param> public Sample(IO.Devices.AD5593R.Device dev, int channel, int sample = 0) { dev.ConfigureChannel(channel, IO.Devices.AD5593R.PinMode.DAC_Output); this.dev = dev; this.chan = channel; this.sample = sample; }
/// <summary> /// Constructor for a single ADAC click. /// </summary> /// <param name="socknum">mikroBUS socket number.</param> /// <param name="addr">I<sup>2</sup>C slave address.</param> /// <param name="remdev">Remote I/O server device object.</param> public Board(int socknum, int addr = DefaultAddress, IO.Remote.Device remdev = null) { // Create Remote I/O server device object, if one wasn't supplied if (remdev == null) { remdev = new IO.Remote.Device(); } // Create a mikroBUS socket object IO.Remote.mikroBUS.Socket S = new IO.Remote.mikroBUS.Socket(socknum); // Configure hardware reset GPIO pin myrst = remdev.GPIO_Create(S.RST, IO.Interfaces.GPIO.Direction.Output, true); // Issue hardware reset Reset(); // Configure I2C bus IO.Interfaces.I2C.Bus bus; if (IO.Remote.mikroBUS.Shield.I2CBus is null) { bus = remdev.I2C_Create(S.I2CBus); } else { bus = IO.Remote.mikroBUS.Shield.I2CBus; } // Configure AD5593R mydev = new IO.Devices.AD5593R.Device(bus, addr); // The ADAC click is wired for 0-5.0V on both ADC and DAC mydev.ADC_Reference = IO.Devices.AD5593R.ReferenceMode.Internalx2; mydev.DAC_Reference = IO.Devices.AD5593R.ReferenceMode.Internalx2; }
/// <summary> /// Create an AD5593R GPIO pin. /// </summary> /// <param name="dev">AD5593R device object.</param> /// <param name="channel">AD5593R I/O channel number (0 to 7).</param> /// <param name="dir">GPIO pin data direction.</param> /// <param name="state">Initial GPIO output state.</param> public Pin(IO.Devices.AD5593R.Device dev, int channel, IO.Interfaces.GPIO.Direction dir, bool state = false) { this.dev = dev; mask = (byte)(1 << channel); notmask = (byte)~mask; // Configure the AD5593 I/O channel if (dir == IO.Interfaces.GPIO.Direction.Input) { dev.ConfigureChannel(channel, PinMode.GPIO_Input); isinput = true; } else { dev.ConfigureChannel(channel, PinMode.GPIO_Output); isinput = false; this.state = state; } }
/// <summary> /// Constructor for a single ADAC click. /// </summary> /// <param name="socknum">mikroBUS socket number.</param> /// <param name="addr">I<sup>2</sup>C slave address.</param> public Board(int socknum, int addr = DefaultAddress) { IO.Objects.libsimpleio.mikroBUS.Socket S = new IO.Objects.libsimpleio.mikroBUS.Socket(socknum); // Configure hardware reset GPIO pin myrst = new IO.Objects.libsimpleio.GPIO.Pin(S.RST, IO.Interfaces.GPIO.Direction.Output, true); // Issue hardware reset Reset(); // Configure I2C bus IO.Interfaces.I2C.Bus bus; if (IO.Objects.libsimpleio.mikroBUS.Shield.I2CBus is null) { bus = new IO.Objects.libsimpleio.I2C.Bus(S.I2CBus); } else { bus = IO.Objects.libsimpleio.mikroBUS.Shield.I2CBus; } // Configure AD5593R mydev = new IO.Devices.AD5593R.Device(bus, addr); // The ADAC click is wired for 0-5.0V on both ADC and DAC mydev.ADC_Reference = IO.Devices.AD5593R.ReferenceMode.Internalx2; mydev.DAC_Reference = IO.Devices.AD5593R.ReferenceMode.Internalx2; }
/// <summary> /// Create an AD5593R ADC input. /// </summary> /// <param name="dev">AD5593R device object.</param> /// <param name="channel">AD5593R I/O channel number (0 to 7).</param> public Sample(IO.Devices.AD5593R.Device dev, int channel) { dev.ConfigureChannel(channel, IO.Devices.AD5593R.PinMode.ADC_Input); this.dev = dev; this.chan = channel; }