|
| 1 | +// Draws a test pattern on the ITead ITDB02-2.8 shield in landscape, with the |
| 2 | +// red square in the top left corner. |
| 3 | +package main |
| 4 | + |
| 5 | +import ( |
| 6 | + "image/color" |
| 7 | + "machine" |
| 8 | + "time" |
| 9 | + |
| 10 | + "tinygo.org/x/drivers" |
| 11 | + "tinygo.org/x/drivers/ili9325" |
| 12 | +) |
| 13 | + |
| 14 | +var ( |
| 15 | + data = [8]machine.Pin{machine.D0, machine.D1, machine.D2, machine.D3, machine.D4, machine.D5, machine.D6, machine.D7} |
| 16 | + rs = machine.ADC5 |
| 17 | + wr = machine.ADC4 |
| 18 | + cs = machine.ADC3 |
| 19 | + rst = machine.ADC2 |
| 20 | +) |
| 21 | + |
| 22 | +var ( |
| 23 | + black = color.RGBA{0, 0, 0, 255} |
| 24 | + white = color.RGBA{255, 255, 255, 255} |
| 25 | + red = color.RGBA{255, 0, 0, 255} |
| 26 | + green = color.RGBA{0, 255, 0, 255} |
| 27 | + blue = color.RGBA{0, 0, 255, 255} |
| 28 | +) |
| 29 | + |
| 30 | +func main() { |
| 31 | + out := machine.PinConfig{Mode: machine.PinOutput} |
| 32 | + for _, p := range append(data[:], rs, wr, cs, rst) { |
| 33 | + p.Configure(out) |
| 34 | + } |
| 35 | + |
| 36 | + display := ili9325.New(newBus(), rs, cs, rst) |
| 37 | + display.Configure(ili9325.Config{Rotation: drivers.Rotation90}) |
| 38 | + |
| 39 | + w, h := display.Size() |
| 40 | + display.FillScreen(black) |
| 41 | + display.FillRectangle(0, 0, 40, 40, red) |
| 42 | + display.FillRectangle(w-40, 0, 40, 40, green) |
| 43 | + display.FillRectangle(0, h-40, 40, 40, blue) |
| 44 | + display.FillRectangle(w-40, h-40, 40, 40, white) |
| 45 | + |
| 46 | + // Only redraw the strips that change, so the square doesn't flicker. |
| 47 | + x, y, dx := int16(40), h/2-20, int16(4) |
| 48 | + display.FillRectangle(x, y, 40, 40, green) |
| 49 | + for { |
| 50 | + if x+dx < 40 || x+dx > w-80 { |
| 51 | + dx = -dx |
| 52 | + } |
| 53 | + if dx > 0 { |
| 54 | + display.FillRectangle(x, y, dx, 40, black) |
| 55 | + display.FillRectangle(x+40, y, dx, 40, green) |
| 56 | + } else { |
| 57 | + display.FillRectangle(x+40+dx, y, -dx, 40, black) |
| 58 | + display.FillRectangle(x+dx, y, -dx, 40, green) |
| 59 | + } |
| 60 | + x += dx |
| 61 | + time.Sleep(10 * time.Millisecond) |
| 62 | + } |
| 63 | +} |
0 commit comments