66 lines
1.5 KiB
Python
66 lines
1.5 KiB
Python
import badger2040
|
|
import machine
|
|
|
|
display = badger2040.Badger2040()
|
|
|
|
button_a = machine.Pin(badger2040.BUTTON_A, machine.Pin.IN, machine.Pin.PULL_DOWN)
|
|
button_b = machine.Pin(badger2040.BUTTON_B, machine.Pin.IN, machine.Pin.PULL_DOWN)
|
|
|
|
display.thickness(10)
|
|
display.pen(0)
|
|
display.line(0, 5, 295, 5)
|
|
display.line(0, 123, 295, 123)
|
|
|
|
display.thickness(1)
|
|
for x in range(14):
|
|
display.line(x * 20, 10, x * 20, 118)
|
|
|
|
display.line(0, 0, 295, 127)
|
|
display.line(0, 127, 295, 0)
|
|
|
|
display.font("sans")
|
|
display.thickness(5)
|
|
display.text("Hello World", 10, 30, 1.0)
|
|
display.pen(7)
|
|
display.text("Hello World", 10, 60, 1.0)
|
|
display.pen(11)
|
|
display.text("Hello World", 10, 90, 1.0)
|
|
|
|
display.update()
|
|
|
|
dirty = False
|
|
pressed = None
|
|
|
|
|
|
def button(pin):
|
|
global dirty, pressed
|
|
if pin == button_a:
|
|
pressed = "Button A"
|
|
dirty = True
|
|
return
|
|
if pin == button_b:
|
|
pressed = "Button B"
|
|
dirty = True
|
|
return
|
|
|
|
|
|
button_a.irq(trigger=machine.Pin.IRQ_RISING, handler=button)
|
|
button_b.irq(trigger=machine.Pin.IRQ_RISING, handler=button)
|
|
|
|
# This breaks Thonny, since it's no longer possible to Stop the code
|
|
# need to press the reset button on the board...
|
|
# It will also crash your USB bus, probably, your whole bus...
|
|
# @micropython.asm_thumb
|
|
# def lightsleep():
|
|
# wfi()
|
|
|
|
while True:
|
|
if dirty:
|
|
display.pen(15)
|
|
display.clear()
|
|
display.pen(0)
|
|
display.text(pressed, 10, 60, 2.0)
|
|
display.update()
|
|
dirty = False
|
|
# machine.lightsleep() # Currently imposible to wake from this on IRQ
|