12 lines
406 B
Plaintext
12 lines
406 B
Plaintext
.program ws2812
|
|
.side_set 1
|
|
.wrap_target
|
|
bitloop:
|
|
out x 1 side 0 [6]; Drive low. Side-set still takes place before instruction stalls.
|
|
jmp !x do_zero side 1 [3]; Branch on the bit we shifted out previous delay. Drive high.
|
|
do_one:
|
|
jmp bitloop side 1 [4]; Continue driving high, for a one (long pulse)
|
|
do_zero:
|
|
nop side 0 [4]; Or drive low, for a zero (short pulse)
|
|
.wrap
|