mirror of
https://github.com/Bodmer/TFT_eSPI.git
synced 2025-08-03 04:34:43 +02:00
Delete pio_SPI_18bit.pio
This commit is contained in:
@@ -1,89 +0,0 @@
|
||||
// Raspberry Pi Pico PIO program to output 18 bit data to a TFT
|
||||
// controller via a SPI output data path.
|
||||
|
||||
//"Set" set: 1 output pin, TFT_DC
|
||||
// Side set: 1 output pin, TFT_SCLK
|
||||
// Data set: 1 output pin, TFT_MOSI
|
||||
|
||||
.program tft_io
|
||||
.side_set 1 opt ; The TFT_SCLK output.
|
||||
|
||||
// The C++ code switches between the 8 bits and 16 bits loops
|
||||
// by waiting for the SM to be idle and setting its PC.
|
||||
//
|
||||
|
||||
// 8 bit transfer
|
||||
public start_8:
|
||||
// Pull the next 32 bit value from the TX FIFO.
|
||||
pull side 0
|
||||
// Lose the top 24 bits, send 1st bit
|
||||
out pins, 25
|
||||
// Now send remaining bits
|
||||
jmp spi_out side 1
|
||||
|
||||
public set_addr_window:
|
||||
// Loop count in x for caset, paset and ramwr
|
||||
set x, 2 side 0
|
||||
pull_cmd:
|
||||
// Set DC low
|
||||
set pins, 0
|
||||
// Fetch and output LS byte (caset, paset or ramwr), discarding top 24 bits, set WR low
|
||||
pull side 0
|
||||
out pins, 25
|
||||
nop side 1
|
||||
next_cmd_bit:
|
||||
out pins, 1 side 0
|
||||
jmp !osre, next_cmd_bit side 1
|
||||
// Set DC high
|
||||
set pins, 1 side 0
|
||||
// Finish if 3rd cmd byte ramwr sent (x == 0)
|
||||
jmp !x, start_tx
|
||||
pull
|
||||
next_xy:
|
||||
// send 32 bit start and end coordinates
|
||||
out pins, 1 side 0
|
||||
jmp !osre, next_xy side 1
|
||||
// Loop back for next command
|
||||
jmp x--, pull_cmd side 0
|
||||
// End
|
||||
jmp start_tx
|
||||
|
||||
public block_fill:
|
||||
// Fetch colour value
|
||||
pull side 0
|
||||
// Move colour to x
|
||||
mov x, osr
|
||||
// Fetch pixel count
|
||||
pull
|
||||
// Move pixel count to y
|
||||
mov y, osr
|
||||
next_16:
|
||||
// Copy colour value back into osr
|
||||
mov osr, x side 0
|
||||
// Lose the top 8 bits, send 1st bit
|
||||
out pins, 9 side 0
|
||||
nop side 1
|
||||
next_bit:
|
||||
// Output next remaining bits
|
||||
out pins, 1 side 0
|
||||
// Set TFT_SCLK high and jump for next bit
|
||||
jmp !osre, next_bit side 1
|
||||
// Decrement count and loop
|
||||
jmp y--, next_16 side 0
|
||||
// Now drop back to 16 bit output
|
||||
|
||||
.wrap_target
|
||||
public start_tx:
|
||||
// Pull the next 32 bit value from the TX FIFO.
|
||||
// Send the bottom 24 bits
|
||||
pull side 0
|
||||
// Drop the first 8 bits, write first bit
|
||||
out pins, 9 side 0
|
||||
nop side 1
|
||||
spi_out:
|
||||
// Output the remaining bits
|
||||
out pins, 1 side 0
|
||||
// Set TFT_SCLK high and jump for next bit
|
||||
jmp !osre, spi_out side 1
|
||||
// Return to start
|
||||
.wrap
|
Reference in New Issue
Block a user