101 lines
1.9 KiB
Python
Raw Normal View History

2021-10-28 16:05:35 +08:00
from PikaObj import *
2021-10-01 00:21:50 +08:00
import PikaStdLib
2021-10-19 08:15:01 +08:00
import PikaPiZero
2021-10-26 21:44:10 +08:00
import STM32
2021-10-27 15:24:42 +08:00
2021-10-28 16:05:35 +08:00
pin = STM32.GPIO()
pin.init()
pin.setPin('PA0')
pin.setMode('in')
pin.setPull('down')
pin.enable()
pin.setPin('PA15')
pin.setMode('in')
pin.setPull('up')
pin.enable()
pin.setPin('PC13')
pin.enable()
pin.setPin('PB6')
pin.enable()
remove('pin')
ll = STM32.lowLevel()
2021-10-27 15:24:42 +08:00
oled = PikaPiZero.OLED()
oled.init()
2021-10-26 20:31:56 +08:00
p0 = PikaPiZero.Point()
p0.x = 7
p0.y = 4
p_next_num = 0
k = 0
2021-10-28 16:05:35 +08:00
while k < 3:
p = p0
i = 0
while i < p_next_num:
p = p.next
i = i + 1
p.next = PikaPiZero.Point()
2021-10-28 16:05:35 +08:00
p.next.x = p.x - 1
p.next.y = p.y
p.next.prev = p
p_next_num = p_next_num + 1
k = k + 1
2021-10-27 15:24:42 +08:00
2021-10-27 22:45:17 +08:00
mem = PikaStdLib.MemChecker()
print('mem used max:')
mem.max()
2021-10-27 15:24:42 +08:00
pos = 0
isUpdate = 1
2021-10-25 20:16:08 +08:00
while True:
2021-10-26 21:44:10 +08:00
if isUpdate:
isUpdate = 0
p = p0
i = 0
while i < p_next_num:
p = p.next
i = i + 1
i = 0
while i < p_next_num:
p = p.prev
p.next.x = p.x
p.next.y = p.y
i = i + 1
2021-10-26 21:44:10 +08:00
if pos == 0:
2021-10-26 20:31:56 +08:00
p0.x = p0.x + 1
2021-10-26 21:44:10 +08:00
if p0.x > 15:
p0.x = 0
if pos == 1:
2021-10-26 20:31:56 +08:00
p0.x = p0.x - 1
2021-10-26 21:44:10 +08:00
if p0.x < 0:
p0.x = 15
if pos == 2:
2021-10-26 20:31:56 +08:00
p0.y = p0.y - 1
2021-10-26 21:44:10 +08:00
if p0.y < 0:
p0.y = 7
if pos == 3:
2021-10-26 20:31:56 +08:00
p0.y = p0.y + 1
2021-10-26 21:44:10 +08:00
if p0.y > 7:
p0.y = 0
p = p0
i = 0
2021-10-26 21:44:10 +08:00
oled.clear()
while i < p_next_num:
oled.drawPoint(p.x, p.y)
p = p.next
i = i + 1
2021-10-27 22:45:17 +08:00
oled.refresh()
2021-10-28 16:05:35 +08:00
if ll.readPin('PA0') == 1:
2021-10-26 21:44:10 +08:00
pos = 0
isUpdate = 1
2021-10-28 16:05:35 +08:00
if ll.readPin('PC13') == 0:
pos = 1
isUpdate = 1
if ll.readPin('PA15') == 0:
2021-10-26 21:44:10 +08:00
pos = 2
2021-10-27 22:45:17 +08:00
isUpdate = 1
2021-10-28 16:05:35 +08:00
if ll.readPin('PB6') == 0:
pos = 3
isUpdate = 1