from machine import Pin, mem32
import time
for gpio in [2, 4, 5, 18]:
Pin(gpio, Pin.OUT)
GPIO_OUT = 0x3FF44004
gpios = [2, 4, 5, 18]
def criar_mask (palavra_4bits):
mask = 0
for i, gpio in enumerate(gpios):
if (palavra_4bits >> i) & 0b0001:
mask |= (1 << gpio)
return mask
print("Sequenciador via mem32 — ida e volta")
sequencia = [1 << i for i in range(4)] + [1 << i for i in range(2, -1, -1)]
while True:
for palavra in sequencia:
mem32[GPIO_OUT] = criar_mask(palavra)
print(f"Padrão = {palavra:04b} máscara = {criar_mask(palavra):032b}")
time.sleep(0.2)