// ---------------------------------------------------------------- //
// This file is autogenerated by pioasm version 2.3.1; do not edit! //
// ---------------------------------------------------------------- //

#pragma once

#if !PICO_NO_HARDWARE
#include "hardware/pio.h"
#endif

#ifdef __cpp_constexpr
#define __pio_const constexpr
#else
#define __pio_const const
#endif

// ------ //
// timing //
// ------ //

#define timing_wrap_target 1
#define timing_wrap 5
#define timing_pio_version 0

#define timing_offset_entry_point 0u

static __pio_const uint16_t timing_program_instructions[] = {
    0x80a0, //  0: pull   block
            //     .wrap_target
    0x60f0, //  1: out    exec, 16
    0x602e, //  2: out    x, 14
    0x6002, //  3: out    pins, 2
    0xa042, //  4: nop
    0x0044, //  5: jmp    x--, 4
            //     .wrap
};

#if !PICO_NO_HARDWARE
static __pio_const struct pio_program timing_program = {
    .instructions = timing_program_instructions,
    .length = 6,
    .origin = -1,
    .pio_version = timing_pio_version,
#if PICO_PIO_VERSION > 0
    .used_gpio_ranges = 0x0
#endif
};

static inline pio_sm_config timing_program_get_default_config(uint offset) {
    pio_sm_config c = pio_get_default_sm_config();
    sm_config_set_wrap(&c, offset + timing_wrap_target, offset + timing_wrap);
    return c;
}
#endif

