static void TestWithGraph(MicClick mic) { const int SCREEN_WIDTH = 160; const int SCREEN_HEIGHT = 128; int graph; var spi = SpiController.FromName(SC20100.SpiBus.Spi3); var gpio = GpioController.GetDefault(); //Display Setup var st7735 = new ST7735Controller( spi.GetDevice(ST7735Controller.GetConnectionSettings (SpiChipSelectType.Gpio, SC20100.GpioPin.PD10)), //CS pin. gpio.OpenPin(SC20100.GpioPin.PC4), //RS pin. gpio.OpenPin(SC20100.GpioPin.PE15) //RESET pin. ); var backlight = gpio.OpenPin(SC20100.GpioPin.PE5); backlight.SetDriveMode(GpioPinDriveMode.Output); backlight.Write(GpioPinValue.High); var displayController = DisplayController.FromProvider(st7735); st7735.SetDataAccessControl(true, true, false, false); //Rotate the screen. displayController.SetConfiguration(new SpiDisplayControllerSettings { Width = SCREEN_WIDTH, Height = SCREEN_HEIGHT, DataFormat = DisplayDataFormat.Rgb565 }); displayController.Enable(); // Create flush event Graphics.OnFlushEvent += Graphics_OnFlushEvent; var screen = Graphics.FromImage(new Bitmap (displayController.ActiveConfiguration.Width, displayController.ActiveConfiguration.Height)); while (true) { graph = (int)(mic.Read() * 100) + 20; if (x++ > SCREEN_WIDTH) { x = 0; screen.Clear(Color.Black); } screen.DrawLine(new Pen(Color.Green), x, SCREEN_HEIGHT, x, graph); screen.Flush(); } void Graphics_OnFlushEvent(IntPtr hdc, byte[] data) { st7735.DrawBuffer(data); } }
public static void Main() { var spi = SpiController.FromName(G80.SpiBus.Spi2); var gpio = GpioController.GetDefault(); var st7735 = new ST7735Controller(spi.GetDevice(ST7735Controller.GetConnectionSettings(SpiChipSelectType.Gpio, G80.GpioPin.PD10)), gpio.OpenPin(G80.GpioPin.PE10), gpio.OpenPin(G80.GpioPin.PE12)); st7735.SetDataAccessControl(true, true, false, false); st7735.Enable(); var disp = DisplayController.FromProvider(st7735); disp.SetConfiguration(new SpiDisplayControllerSettings { Width = 160, Height = 128 }); var bl = gpio.OpenPin(G80.GpioPin.PC7); bl.Write(GpioPinValue.High); bl.SetDriveMode(GpioPinDriveMode.Output); var hdc = GraphicsManager.RegisterDrawTarget(new DrawTarget(disp)); var screen = Graphics.FromHdc(hdc); var rnd = new Random(); var x = rnd.Next(160); var y = rnd.Next(128); var vx = rnd.Next(20) - 10; var vy = rnd.Next(20) - 10; var color = new Pen(Color.Green); var teal = new SolidBrush(Color.Teal); // This is a special built-in font for simple SPI displays var font = new Font("GHIMono8x5", 8); while (true) { x += vx; y += vy; if (x >= 160 || x < 0) { vx *= -1; } if (y >= 128 || y < 0) { vy *= -1; } screen.Clear(Color.Black); screen.DrawString("Hello World!", font, teal, 40, 10); screen.DrawEllipse(color, x, y, 10, 10); screen.Flush(); Thread.Sleep(10); } }
/// <summary> /// Application constructor /// </summary> public Application(int width, int height) { var d = DisplayController.FromProvider(null); d.SetConfiguration(new DisplayControllerSettings() { Width = width, Height = height }); this.display = d; this.Initialize(); }
public static void Main() { var spi1Controller = SpiController.FromName(FEZ.SpiBus.Spi1); var gpioController = GpioController.GetDefault(); var st7735 = new ST7735Controller(spi1Controller.GetDevice(ST7735Controller.GetConnectionSettings(SpiChipSelectType.Gpio, FEZ.GpioPin.D10)), gpioController.OpenPin(FEZ.GpioPin.D8)); st7735.SetDataAccessControl(false, false, false, false); st7735.SetDrawWindow(0, 40); var display = DisplayController.FromProvider(st7735); display.SetConfiguration(new SpiDisplayControllerSettings { Width = 128, Height = 80, DataFormat = DisplayDataFormat.Rgb444 }); display.Enable(); var hdc = GraphicsManager.RegisterDrawTarget(new DrawTarget(display)); var screen = Graphics.FromHdc(hdc); var cnt = 0; var font = new Font("GHIMono8x5", 8); while (true) { screen.Clear(Color.Black); screen.DrawString(cnt++.ToString(), font, new SolidBrush(Color.Purple), 0, 40); screen.DrawEllipse(new Pen(Color.Blue), 0, 0, 10, 10); screen.DrawRectangle(new Pen(Color.Red), 10, 0, 10, 10); screen.DrawLine(new Pen(Color.Green, 1), 25, 0, 22, 24); screen.DrawString("The quick brown fox jumped over the lazy dogs.", font, new SolidBrush(Color.Teal), new RectangleF(40, 0, 60, 40)); var idx = 0; screen.DrawLine(new Pen(Color.Black, 1), 60 + idx, 40, 60 + idx, 70); idx += 4; screen.DrawLine(new Pen(Color.White, 1), 60 + idx, 40, 60 + idx, 70); idx += 4; screen.DrawLine(new Pen(Color.Gray, 1), 60 + idx, 40, 60 + idx, 70); idx += 4; screen.DrawLine(new Pen(Color.Red, 1), 60 + idx, 40, 60 + idx, 70); idx += 4; screen.DrawLine(new Pen(Color.Green, 1), 60 + idx, 40, 60 + idx, 70); idx += 4; screen.DrawLine(new Pen(Color.Blue, 1), 60 + idx, 40, 60 + idx, 70); idx += 4; screen.DrawLine(new Pen(Color.Yellow, 1), 60 + idx, 40, 60 + idx, 70); idx += 4; screen.DrawLine(new Pen(Color.Purple, 1), 60 + idx, 40, 60 + idx, 70); idx += 4; screen.DrawLine(new Pen(Color.Teal, 1), 60 + idx, 40, 60 + idx, 70); idx += 4; screen.Flush(); } }
public static void Main() { // Get the display ready var spi = SpiController.FromName(G80.SpiBus.Spi2); var gpio = GpioController.GetDefault(); var st7735 = new ST7735Controller(spi.GetDevice(ST7735Controller.GetConnectionSettings(SpiChipSelectType.Gpio, G80.GpioPin.PD10)), gpio.OpenPin(G80.GpioPin.PE10), gpio.OpenPin(G80.GpioPin.PE12)); st7735.SetDataAccessControl(true, true, false, false); st7735.Enable(); var disp = DisplayController.FromProvider(st7735); disp.SetConfiguration(new SpiDisplayControllerSettings { Width = 160, Height = 128 }); var bl = gpio.OpenPin(G80.GpioPin.PC7); bl.Write(GpioPinValue.High); bl.SetDriveMode(GpioPinDriveMode.Output); var hdc = GraphicsManager.RegisterDrawTarget(new DrawTarget(disp)); screen = Graphics.FromHdc(hdc); screen.Clear(Color.Black); var btn1 = gpio.OpenPin(G80.GpioPin.PE0); btn1.SetDriveMode(GpioPinDriveMode.InputPullUp); btn1.ValueChanged += Btn1_ValueChanged; // Serial port serial = UartController.FromName(G80.UartPort.Usart1); serial.SetActiveSettings(9600, 8, UartParity.None, UartStopBitCount.One, UartHandshake.None); serial.Enable(); serial.DataReceived += Serial_DataReceived; Thread.Sleep(Timeout.Infinite); }