| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- // -------------------------------------------------- //
- // This file is autogenerated by pioasm; do not edit! //
- // -------------------------------------------------- //
- #pragma once
- #if !PICO_NO_HARDWARE
- #include "hardware/pio.h"
- #endif
- // ------- //
- // cmd_rsp //
- // ------- //
- #define cmd_rsp_wrap_target 0
- #define cmd_rsp_wrap 9
- static const uint16_t cmd_rsp_program_instructions[] = {
- // .wrap_target
- 0x7001, // 0: out pins, 1 side 0
- 0x1840, // 1: jmp x--, 0 side 1
- 0x1060, // 2: jmp !y, 0 side 0
- 0xf880, // 3: set pindirs, 0 side 1
- 0xb042, // 4: nop side 0
- 0xb842, // 5: nop side 1
- 0x00c4, // 6: jmp pin, 4
- 0x4001, // 7: in pins, 1
- 0x9060, // 8: push iffull block side 0
- 0x1887, // 9: jmp y--, 7 side 1
- // .wrap
- };
- #if !PICO_NO_HARDWARE
- static const struct pio_program cmd_rsp_program = {
- .instructions = cmd_rsp_program_instructions,
- .length = 10,
- .origin = -1,
- };
- static inline pio_sm_config cmd_rsp_program_get_default_config(uint offset) {
- pio_sm_config c = pio_get_default_sm_config();
- sm_config_set_wrap(&c, offset + cmd_rsp_wrap_target, offset + cmd_rsp_wrap);
- sm_config_set_sideset(&c, 2, true, false);
- return c;
- }
- static inline pio_sm_config pio_cmd_rsp_program_config(uint offset, uint cmd_pin, uint clk_pin, uint16_t div_int, uint8_t div_frac) {
- pio_sm_config c = cmd_rsp_program_get_default_config(offset);
- sm_config_set_sideset_pins(&c, clk_pin);
- sm_config_set_out_pins(&c, cmd_pin, 1);
- sm_config_set_in_pins(&c, cmd_pin);
- sm_config_set_set_pins(&c, cmd_pin, 1);
- sm_config_set_jmp_pin(&c, cmd_pin);
- sm_config_set_in_shift(&c, false, false, 8);
- sm_config_set_out_shift(&c, false, true, 8);
- sm_config_set_clkdiv_int_frac(&c, div_int, div_frac);
- return c;
- }
- #endif
- // --------------- //
- // rd_data_w_clock //
- // --------------- //
- #define rd_data_w_clock_wrap_target 0
- #define rd_data_w_clock_wrap 7
- static const uint16_t rd_data_w_clock_program_instructions[] = {
- // .wrap_target
- 0xa022, // 0: mov x, y side 0
- 0xa042, // 1: nop side 0
- 0x10c1, // 2: jmp pin, 1 side 1
- 0xa042, // 3: nop side 0
- 0xb042, // 4: nop side 1
- 0x4004, // 5: in pins, 4 side 0
- 0x9060, // 6: push iffull block side 1
- 0x1045, // 7: jmp x--, 5 side 1
- // .wrap
- };
- #if !PICO_NO_HARDWARE
- static const struct pio_program rd_data_w_clock_program = {
- .instructions = rd_data_w_clock_program_instructions,
- .length = 8,
- .origin = -1,
- };
- static inline pio_sm_config rd_data_w_clock_program_get_default_config(uint offset) {
- pio_sm_config c = pio_get_default_sm_config();
- sm_config_set_wrap(&c, offset + rd_data_w_clock_wrap_target, offset + rd_data_w_clock_wrap);
- sm_config_set_sideset(&c, 1, false, false);
- return c;
- }
- static inline pio_sm_config pio_rd_data_w_clock_program_config(uint offset, uint d0_pin, uint clk_pin, float clk_div) {
- pio_sm_config c = rd_data_w_clock_program_get_default_config(offset);
- sm_config_set_sideset_pins(&c, clk_pin);
- sm_config_set_in_pins(&c, d0_pin);
- sm_config_set_jmp_pin(&c, d0_pin);
- sm_config_set_in_shift(&c, false, false, 32);
- sm_config_set_out_shift(&c, false, true, 32);
- sm_config_set_clkdiv(&c, clk_div);
- return c;
- }
- #endif
- // --------------- //
- // tx_data_w_clock //
- // --------------- //
- #define tx_data_w_clock_wrap_target 7
- #define tx_data_w_clock_wrap 7
- static const uint16_t tx_data_w_clock_program_instructions[] = {
- 0x7004, // 0: out pins, 4 side 0
- 0x1840, // 1: jmp x--, 0 side 1
- 0xf880, // 2: set pindirs, 0 side 1
- 0x5801, // 3: in pins, 1 side 1
- 0x1083, // 4: jmp y--, 3 side 0
- 0x18c7, // 5: jmp pin, 7 side 1
- 0x1005, // 6: jmp 5 side 0
- // .wrap_target
- 0x9040, // 7: push iffull noblock side 0
- // .wrap
- };
- #if !PICO_NO_HARDWARE
- static const struct pio_program tx_data_w_clock_program = {
- .instructions = tx_data_w_clock_program_instructions,
- .length = 8,
- .origin = -1,
- };
- static inline pio_sm_config tx_data_w_clock_program_get_default_config(uint offset) {
- pio_sm_config c = pio_get_default_sm_config();
- sm_config_set_wrap(&c, offset + tx_data_w_clock_wrap_target, offset + tx_data_w_clock_wrap);
- sm_config_set_sideset(&c, 2, true, false);
- return c;
- }
- static inline pio_sm_config pio_tx_w_clock_program_config(uint offset, uint data_pin, uint clk_pin, int clk_div) {
- pio_sm_config c = tx_data_w_clock_program_get_default_config(offset);
- sm_config_set_sideset_pins(&c, clk_pin);
- sm_config_set_out_pins(&c, data_pin, 4);
- sm_config_set_in_pins(&c, data_pin);
- sm_config_set_set_pins(&c, data_pin, 4);
- sm_config_set_in_shift(&c, false, false, 8);
- sm_config_set_out_shift(&c, false, true, 32);
- sm_config_set_jmp_pin(&c, data_pin);
- sm_config_set_clkdiv_int_frac(&c, clk_div, 0);
- return c;
- }
- #endif
|