public static void Run(string[] args) { Console.WriteLine("Nusbio initialization"); var serialNumber = Nusbio.Detect(); if (serialNumber == null) // Detect the first Nusbio available { Console.WriteLine("nusbio not detected"); return; } var sclPin = NusbioGpio.Gpio0; // White var sdaPin = NusbioGpio.Gpio1; // Green byte EEPROM_I2C_ADDR = 0x50; // Microship 24LC256 = 32k byte MCP23008_I2C_ADDR = 0x20; // Microship MCP 23008 = 8 gpios using (var nusbio = new Nusbio(serialNumber)) // , { _eeprom = new EEPROM_24LC256(nusbio, sdaPin, sclPin); _eeprom.Begin(EEPROM_I2C_ADDR); _mcp = new MCP23008(nusbio, sdaPin, sclPin, gpioStartIndex:9); _mcp.Begin(MCP23008_I2C_ADDR); Cls(nusbio); var standardsGpios = new List<NusbioGpio>() { NusbioGpio.Gpio2, NusbioGpio.Gpio3, NusbioGpio.Gpio4, NusbioGpio.Gpio5, NusbioGpio.Gpio6, NusbioGpio.Gpio7 }; var extendedGpios = new List<string>() { NusbioGpioEx.Gpio9 , NusbioGpioEx.Gpio10, NusbioGpioEx.Gpio11, NusbioGpioEx.Gpio12, NusbioGpioEx.Gpio13, NusbioGpioEx.Gpio14, NusbioGpioEx.Gpio15, NusbioGpioEx.Gpio16 }; var g = NusbioGpioEx.Gpio16; _mcp.SetPinMode(g, PinMode.Input); while(nusbio.Loop()) { //if (_mcp.GPIOS[g].DigitalRead() == PinState.High) //{ // ConsoleEx.Write(0, 10, string.Format("[{0}] Button Down", DateTime.Now), ConsoleColor.Cyan); //} //else //{ // ConsoleEx.Write(0, 10, string.Format("[{0}] Button Up ", DateTime.Now), ConsoleColor.Cyan); //} foreach (var eg in extendedGpios) { _mcp.GPIOS[eg].State = !_mcp.GPIOS[eg].State; _mcp.GPIOS[eg].DigitalWrite(_mcp.GPIOS[eg].State); } foreach (var sg in standardsGpios) { nusbio.GPIOS[sg].State = !nusbio.GPIOS[sg].State; nusbio.GPIOS[sg].DigitalWrite(nusbio.GPIOS[sg].State); } TimePeriod.Sleep(300); if (Console.KeyAvailable) { var k = Console.ReadKey(true).Key; if (k == ConsoleKey.D0) { ReadEEPromPerPage(10, nusbio); Cls(nusbio); } if (k == ConsoleKey.A) { ReadEEPromPerPage(512, nusbio); Cls(nusbio); } if (k == ConsoleKey.Q) { _mcp.AllOff(); break; } } } } Console.Clear(); }
public static void Run(string[] args) { Console.WriteLine("Nusbio initialization"); var serialNumber = Nusbio.Detect(); if (serialNumber == null) // Detect the first Nusbio available { Console.WriteLine("nusbio not detected"); return; } var clockPin = NusbioGpio.Gpio0; // White var dataOutPin = NusbioGpio.Gpio1; // Green var dataInPin = NusbioGpio.Gpio2; // Orange byte EEPROM1_WR = 80;//0xA0; using (var nusbio = new Nusbio(serialNumber) //, inputGpios: new List<NusbioGpio>() {dataInPin}) ) // , { Cls(nusbio); _eeprom = new EEPROM_24LC256(nusbio, dataOutPin, clockPin); _eeprom.Begin(EEPROM1_WR); while(nusbio.Loop()) { if (Console.KeyAvailable) { var k = Console.ReadKey(true).Key; if (k == ConsoleKey.W) { var a = ConsoleEx.Question(23, "Write 32k now Y)es, N)o", new List<char>() { 'Y', 'N' }); if (a == 'Y') { WriteEEPROMPage(512); } } if (k == ConsoleKey.R) { ReadAndVerifyEEPROMPage(10); Cls(nusbio); } if (k == ConsoleKey.A) { ReadAndVerifyEEPROMPage(512); } if (k == ConsoleKey.Q) break; Cls(nusbio); } } } Console.Clear(); }