blob: f7243479f2b2bed71d27aa136e465d4736965970 [file] [log] [blame]
// -------------------------------------------------- //
// This file is autogenerated by pioasm; do not edit! //
// -------------------------------------------------- //
#pragma once
#if !PICO_NO_HARDWARE
#include "hardware/pio.h"
#endif
// ---------- //
// st7789_raw //
// ---------- //
#define st7789_raw_wrap_target 0
#define st7789_raw_wrap 1
static const uint16_t st7789_raw_program_instructions[] = {
// .wrap_target
0x7001, // 0: out pins, 1 side 0
0xb842, // 1: nop side 1
// .wrap
};
#if !PICO_NO_HARDWARE
static const struct pio_program st7789_raw_program = {
.instructions = st7789_raw_program_instructions,
.length = 2,
.origin = -1,
};
static inline pio_sm_config st7789_raw_program_get_default_config(uint offset) {
pio_sm_config c = pio_get_default_sm_config();
sm_config_set_wrap(
&c, offset + st7789_raw_wrap_target, offset + st7789_raw_wrap);
sm_config_set_sideset(&c, 2, true, false);
return c;
}
#endif
// ------------------- //
// st7789_pixel_double //
// ------------------- //
#define st7789_pixel_double_wrap_target 0
#define st7789_pixel_double_wrap 16
static const uint16_t st7789_pixel_double_program_instructions[] = {
// .wrap_target
0x80a0, // 0: pull block
0xa027, // 1: mov x, osr
0x6050, // 2: out y, 16
0x7001, // 3: out pins, 1 side 0
0x18e3, // 4: jmp !osre, 3 side 1
0xa0e1, // 5: mov osr, x
0x6070, // 6: out null, 16
0x7001, // 7: out pins, 1 side 0
0x18e7, // 8: jmp !osre, 7 side 1
0xa0e2, // 9: mov osr, y
0x6070, // 10: out null, 16
0x7001, // 11: out pins, 1 side 0
0x18eb, // 12: jmp !osre, 11 side 1
0xa0e2, // 13: mov osr, y
0x6070, // 14: out null, 16
0x7001, // 15: out pins, 1 side 0
0x18ef, // 16: jmp !osre, 15 side 1
// .wrap
};
#if !PICO_NO_HARDWARE
static const struct pio_program st7789_pixel_double_program = {
.instructions = st7789_pixel_double_program_instructions,
.length = 17,
.origin = -1,
};
static inline pio_sm_config st7789_pixel_double_program_get_default_config(
uint offset) {
pio_sm_config c = pio_get_default_sm_config();
sm_config_set_wrap(&c,
offset + st7789_pixel_double_wrap_target,
offset + st7789_pixel_double_wrap);
sm_config_set_sideset(&c, 2, true, false);
return c;
}
#endif