4 #include "pico/stdlib.h"
5 #include "hardware/pio.h"
6 #include "hardware/clocks.h"
29 this->program = program;
33 this->config = config;
43 uint offset = pio_add_program(pio, &program);
48 state_machine = pio_claim_unused_sm(pio,
true);
52 sm_config_set_out_pins(&config, pin, 1);
55 pio_gpio_init(pio, pin);
58 sm_config_set_sideset_pins(&config, pin);
61 pio_sm_init(pio, state_machine, offset, &config);
65 PIOManager &setup(uint64_t hz,
int pin, pio_program_t program, pio_sm_config config, PIO pio = pio0 ){
66 setup(pin, program, config, pio);
74 float div = clock_get_hz(clk_sys) / hz);
75 sm_config_set_clkdiv(&config, div);
76 pio_sm_set_enabled(pio, state_machine,
true);
78 pio_sm_set_enabled(pio, state_machine,
false);
84 pio_sm_set_enabled(pio, state_machine,
true);
89 pio_sm_set_enabled(pio, state_machine,
false);
96 pio_program_t program;
The PIO subsystem on RP2040 allows you to write small, simple programs for what are called PIO state ...
Definition: PicoPIOManager.h:16