/ examples / ssd1327_gamma.py
ssd1327_gamma.py
 1  import time
 2  import board
 3  import busio
 4  import displayio
 5  import adafruit_ssd1327
 6  
 7  displayio.release_displays()
 8  
 9  # This pinout works on a Metro and may need to be altered for other boards.
10  spi = busio.SPI(board.SCL, board.SDA)
11  tft_cs = board.D6
12  tft_dc = board.D9
13  tft_reset = board.D5
14  
15  display_bus = displayio.FourWire(
16      spi, command=tft_dc, chip_select=tft_cs, reset=tft_reset, baudrate=1000000
17  )
18  time.sleep(1)
19  display = adafruit_ssd1327.SSD1327(display_bus, width=128, height=128)
20  
21  g = displayio.Group()
22  dimension = min(display.width, display.height)
23  color_count = 16
24  gamma_pattern = displayio.Bitmap(dimension, dimension, color_count)
25  gamma_palette = displayio.Palette(color_count)
26  t = displayio.TileGrid(gamma_pattern, pixel_shader=gamma_palette)
27  
28  pixels_per_step = dimension // color_count
29  
30  for i in range(dimension):
31      if i % pixels_per_step == 0:
32          continue
33      gamma_pattern[i, i] = i // pixels_per_step
34  
35  for i in range(color_count):
36      component = i * 255 // (color_count - 1)
37      print(component)
38      gamma_palette[i] = component << 16 | component << 8 | component
39  
40  g.append(t)
41  
42  display.show(g)
43  
44  time.sleep(10)