示例#1
0
        public static void GpioAnimatioOneAtTheTime(Nusbio nusbio, ShiftRegister74HC595 sr, int waitTime, bool demoGpio3to7Too = false)
        {
            // Gpio 0,1,2 are used to control the 2 shift register 74HC595, but we can use the other 5
            sr.SetGpioMask(ShiftRegister74HC595.ExGpio.None);

            for (int i = 0; i < sr.MaxGpio; i++)
            {
                var g = sr.GetGpioFromIndex(i + sr.MinGpioIndex);
                Console.WriteLine(g);
                sr.SetGpioMask(g);
                Thread.Sleep(waitTime);
                if (Console.KeyAvailable)
                {
                    return;
                }
            }
            for (int i = sr.MaxGpio - 1; i >= 0; i--)
            {
                var g = sr.GetGpioFromIndex(i + sr.MinGpioIndex);
                Console.WriteLine(g);
                sr.SetGpioMask(g);
                Thread.Sleep(waitTime);
                if (Console.KeyAvailable)
                {
                    return;
                }
            }
            sr.SetGpioMask(0);
            Thread.Sleep(waitTime * 10);
        }
示例#2
0
        public static void TestSetting16bitAtOnce(Nusbio nusbio, ShiftRegister74HC595 sr, int waitTime)
        {
            Console.Clear();
            ConsoleEx.TitleBar(0, GetAssemblyProduct() + " 16 bit value demo", ConsoleColor.Yellow, ConsoleColor.DarkBlue);
            ConsoleEx.Gotoxy(0, 3);

            //sr.TestPins();

            sr.Reset();
            var p1 = 1;
            var p2 = 256;

            for (var i = 0; i < 8; i++)
            {
                sr.SetGpioMask(p1 + p2);
                //sr.SetDataLinesAndAddrLines((byte)p1, (byte)(p2 >> 8));
                //sr.SetGpioMask((byte)p1, (byte)(p2 >> 8));

                Console.WriteLine("16 bite value:{0:000000} - {1} {2}",
                                  p1 + p2,
                                  MadeInTheUSB.WinUtil.BitUtil.BitRpr(p1),
                                  MadeInTheUSB.WinUtil.BitUtil.BitRpr(p2 >> 8)
                                  );
                Thread.Sleep(waitTime);
                p1 *= 2;
                p2 *= 2;
            }

            Console.WriteLine("---");
            Thread.Sleep(waitTime);

            sr.SetGpioMask(0);
            p1 = 1;
            p2 = 256;
            var pp1 = p1;
            var pp2 = p2;

            for (var i = 0; i < 8; i++)
            {
                //sr.SetGpioMask(pp1 + pp2);
                sr.SetGpioMask((byte)pp1, (byte)(pp2 >> 8));

                Console.WriteLine("16 bite value:{0:000000} - {1} {2}",
                                  pp1 + pp2,
                                  MadeInTheUSB.WinUtil.BitUtil.BitRpr(pp1),
                                  MadeInTheUSB.WinUtil.BitUtil.BitRpr(pp2 >> 8)
                                  );
                Thread.Sleep(waitTime);
                p1  *= 2;
                p2  *= 2;
                pp1 += p1;
                pp2 += p2;
            }
            Console.WriteLine("Hit any key to continue");
            Console.ReadKey();
            sr.SetGpioMask(0);
        }
示例#3
0
        public static void GpioAnimation(Nusbio nusbio, ShiftRegister74HC595 sr, int waitTime, bool demoGpio3to7Too = false)
        {
            // Gpio 0,1,2 are used to control the 2 shift register 74HC595, but we can use the other 5
            var nusbioGpioLeft = new List <NusbioGpio>()
            {
                NusbioGpio.Gpio3, NusbioGpio.Gpio4, NusbioGpio.Gpio5, NusbioGpio.Gpio6, NusbioGpio.Gpio7,
            };

            sr.SetGpioMask(ShiftRegister74HC595.ExGpio.None);

            if (!demoGpio3to7Too)
            {
                GpioAnimatioOneAtTheTime(nusbio, sr, waitTime, demoGpio3to7Too);
            }
            if (demoGpio3to7Too) // Demo internal nusbio gpio 3..7 also
            {
                for (int i = 0; i < nusbioGpioLeft.Count; i++)
                {
                    nusbio[nusbioGpioLeft[i]].DigitalWrite(PinState.High);
                    Console.WriteLine(nusbioGpioLeft[i]);
                    Thread.Sleep(waitTime);
                    if (Console.KeyAvailable)
                    {
                        return;
                    }
                }
            }
            for (int i = 0; i < sr.GetGpioEnums().Count; i++)
            {
                sr.DigitalWrite(i + sr.MinGpioIndex, PinState.High);
                Console.WriteLine(sr.GpioStates);
                Thread.Sleep(waitTime);
                if (Console.KeyAvailable)
                {
                    return;
                }
            }
            for (int i = sr.GetGpioEnums().Count - 1; i >= 0; i--)
            {
                sr.DigitalWrite(i + sr.MinGpioIndex, PinState.Low);
                Console.WriteLine(sr.GpioStates);
                Thread.Sleep(waitTime);
                if (Console.KeyAvailable)
                {
                    return;
                }
            }

            if (demoGpio3to7Too)
            {
                for (int i = nusbioGpioLeft.Count - 1; i >= 0; i--)
                {
                    nusbio[nusbioGpioLeft[i]].DigitalWrite(PinState.Low);
                    Console.WriteLine(nusbioGpioLeft[i]);
                    Thread.Sleep(waitTime);
                    if (Console.KeyAvailable)
                    {
                        return;
                    }
                }
            }
            sr.SetGpioMask(0);
        }