starcontrol/pitft-screen-test.py
Nicole O'Connor d4186e0e43 state sync: contains
* adafruit screen test script
* mainloop with threads
* a mostly finished screen thread
* a partly finished blocklist update thread
2024-11-04 19:25:23 -08:00

58 lines
1.7 KiB
Python
Executable File

#!/usr/bin/env python3
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT
import digitalio
import board
from adafruit_rgb_display.rgb import color565
from adafruit_rgb_display import st7789
# Configuration for CS and DC pins for Raspberry Pi
cs_pin = digitalio.DigitalInOut(board.CE0)
dc_pin = digitalio.DigitalInOut(board.D25)
reset_pin = None
BAUDRATE = 64000000 # The pi can be very fast!
# Create the ST7789 display:
display = st7789.ST7789(
board.SPI(),
cs=cs_pin,
dc=dc_pin,
rst=reset_pin,
baudrate=BAUDRATE,
width=135,
height=240,
x_offset=53,
y_offset=40,
)
backlight = digitalio.DigitalInOut(board.D22)
backlight.switch_to_output()
backlight.value = True
buttonA = digitalio.DigitalInOut(board.D23)
buttonB = digitalio.DigitalInOut(board.D24)
buttonA.switch_to_input()
buttonB.switch_to_input()
buttonAToggle = False
buttonBToggle = False
# Main loop:
while True:
if buttonA.value and buttonB.value:
backlight.value = False # turn off backlight
else:
backlight.value = True # turn on backlight
if buttonB.value and not buttonA.value: # just button A pressed
display.fill(color565(255, 0, 0)) # red
if buttonA.value and not buttonB.value: # just button B pressed
display.fill(color565(0, 0, 255)) # blue
if not buttonA.value and not buttonB.value: # none pressed
display.fill(color565(0, 255, 0)) # green
if buttonA.value != buttonAToggle:
print("buttonA toggle state")
buttonAToggle = buttonA.value
if buttonB.value != buttonBToggle:
print("buttonB toggle state")
buttonBToggle = buttonB.value