示例#1
0
 /// <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;
 }
示例#2
0
        /// <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;
        }
示例#3
0
        /// <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;
            }
        }
示例#4
0
        /// <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;
        }
示例#5
0
 /// <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;
 }