4 #include "pico/stdlib.h"
5 #include "hardware/pio.h"
6 #include "hardware/clocks.h"
31 this->program = program;
35 this->config = config;
45 uint offset = pio_add_program(pio, &program);
50 state_machine = pio_claim_unused_sm(pio,
true);
54 sm_config_set_out_pins(&config, pin, 1);
57 pio_gpio_init(pio, pin);
60 sm_config_set_sideset_pins(&config, pin);
63 pio_sm_init(pio, state_machine, offset, &config);
67 PIOManager &setup(uint64_t hz,
int pin, pio_program_t program, pio_sm_config config, PIO pio = pio0 ){
68 setup(pin, program, config, pio);
76 float div = clock_get_hz(clk_sys) / hz);
77 sm_config_set_clkdiv(&config, div);
78 pio_sm_set_enabled(pio, state_machine,
true);
80 pio_sm_set_enabled(pio, state_machine,
false);
86 pio_sm_set_enabled(pio, state_machine,
true);
91 pio_sm_set_enabled(pio, state_machine,
false);
98 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:18
Pico Arduino Framework.
Definition: Arduino.cpp:26