ws2812.py 1012 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # -------------------------------------------------- #
  2. # This file is autogenerated by pioasm; do not edit! #
  3. # -------------------------------------------------- #
  4. import rp2
  5. from machine import Pin
  6. # ------ #
  7. # ws2812 #
  8. # ------ #
  9. ws2812_T1 = 2
  10. ws2812_T2 = 5
  11. ws2812_T3 = 3
  12. @rp2.asm_pio(sideset_init=pico.PIO.OUT_HIGH, out_init=pico.PIO.OUT_HIGH, out_shiftdir=1)
  13. def ws2812():
  14. wrap_target()
  15. label("0")
  16. out(x, 1) .side(0) [2] # 0
  17. jmp(not_x, "3") .side(1) [1] # 1
  18. jmp("0") .side(1) [4] # 2
  19. label("3")
  20. nop() .side(0) [4] # 3
  21. wrap()
  22. # --------------- #
  23. # ws2812_parallel #
  24. # --------------- #
  25. ws2812_parallel_T1 = 2
  26. ws2812_parallel_T2 = 5
  27. ws2812_parallel_T3 = 3
  28. @rp2.asm_pio()
  29. def ws2812_parallel():
  30. wrap_target()
  31. out(x, 32) # 0
  32. mov(pins, invert(null)) [1] # 1
  33. mov(pins, x) [4] # 2
  34. mov(pins, null) [1] # 3
  35. wrap()