import board
import digitalio
import rp2

Инициализация светодиода на пине board.GP0

led = digitalio.DigitalInOut(board.GP0)
led.direction = digitalio.Direction.OUTPUT

Инициализация таймера

timer = rp2.PIO.sm0
timer.set_exclusive()
timer.active = False

Настройка таймера для генерации прерываний с частотой 3 Гц

timer.init(
freq=3000,
first_instr=rp2.asm_pio.wrap(
rp2.asm_pio.mov(rp2.asm_pio.flags, rp2.asm_pio.null),
rp2.asm_pio.set(rp2.asm_pio.pins, 1),
rp2.asm_pio.set(rp2.asm_pio.out_pins, 1),
rp2.asm_pio.set(rp2.asm_pio.pins, 0),
rp2.asm_pio.set(rp2.asm_pio.out_pins, 0),
rp2.asm_pio.set(rp2.asm_pio.x, 1),
rp2.asm_pio.set(rp2.asm_pio.y, 1),
rp2.asm_pio.jmp(rp2.asm_pio.x_dec, rp2.asm_pio.y_dec, rp2.asm_pio.label("loop")),
rp2.asm_pio.label("loop"),
rp2.asm_pio.jmp(rp2.asm_pio.x_dec, rp2.asm_pio.y_dec, rp2.asm_pio.label("loop")),
),
sideset_base=rp2.asm_pio.set_pins,
out_shiftdir=rp2.asm_pio.OUT_RIGHT,
autopush=True,
pull=True,
push=True,
)

Функция для управления светодиодом с использованием таймера

def strobe_led():
timer.active = True
timer.clear()
timer.exec()
timer.active = False

Основной цикл

while True:
strobe_led()

---
cohere ( strobo )

[file-name 000022_2025-02-18_12-07-19.txt]