private static IDriveTextDisplays GetMcp8Driver() { II2CBus bus = new SpotI2CBus(); MCP23017 mcp = new MCP23017(bus, 0x021); DisplayPins displayPins = new DisplayPins((Pin)21, (Pin)22, (Pin)23, (Pin)24, (Pin)25, (Pin)26, (Pin)27, (Pin)28, (Pin)1, (Pin)3, Pin.None, (Pin)2); return(new Mcp23017TextDriver(mcp, displayPins)); }
public void ShowCounter() { _counterCancelationTokenSource = new CancellationTokenSource(); Task.Run(() => { DisplayControlPins[0].IsOn = true; DisplayControlPins[1].IsOn = false; int[] digitNumbers; var sw = new Stopwatch(); var milissec = 5; while (!_counterCancelationTokenSource.Token.IsCancellationRequested) { digitNumbers = _numbers[DisplayValue / 10]; DisplayPins.SwitchAll(false); DisplayControlPins.Invert(); DisplayPins.Where((p, i) => digitNumbers.Contains(i)).SwitchAll(true); sw.Restart(); while (sw.ElapsedMilliseconds < milissec) { ; } digitNumbers = _numbers[DisplayValue % 10]; DisplayPins.SwitchAll(false); DisplayControlPins.Invert(); DisplayPins.Where((p, i) => digitNumbers.Contains(i)).SwitchAll(true); sw.Restart(); while (sw.ElapsedMilliseconds < milissec) { ; } } sw.Stop(); DisplayPins.SwitchAll(false); DisplayControlPins.SwitchAll(true); }, _counterCancelationTokenSource.Token); }
protected RegisterBasedCharacterDisplayDriver(DisplayPins displayPins) : base(displayPins.TransferMode) { _displayPins = displayPins; }