Files
RTmFM/firmware/Test/datastream.pio

45 lines
862 B
Plaintext

.program datastream
public start:
PULL block
MOV X, OSR
.wrap_target
PULL noblock
OUT NULL, 16
SET Y,6
loop:
OUT PINS,1 [4]
SET PINS,0 [4]
OUT PINS,1 [4]
SET PINS,0 [3]
JMP Y-- loop
OUT PINS,1 [4]
SET PINS,0 [4]
OUT PINS,1 [4]
SET PINS,0 [1]
.wrap
% c-sdk {
static inline void datastream_program_init(PIO pio, uint sm, uint offset) {
pio_set_gpio_base(pio, 0);
pio_gpio_init(pio, 12);
pio_sm_set_consecutive_pindirs(pio, sm, 12, 1, true);
pio_sm_config c = datastream_program_get_default_config(offset);
sm_config_set_out_shift(&c, false, false, 0);
sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_TX);
sm_config_set_clkdiv(&c, 3.0);
sm_config_set_out_pin_base(&c, 12);
sm_config_set_out_pin_count(&c, 1);
sm_config_set_set_pin_base(&c, 12);
sm_config_set_set_pin_count(&c, 1);
pio_sm_init(pio, sm, offset, &c);
}
%}