Basically i glued Peter Drescher and Simon Ford libs in a GraphicsDisplay class, then derived TFT or LCD class (which inherits Protocols class), then the most derived ones (Inits), which are per-display and are the only part needed to be adapted to diff hw.
Fork of
UniGraphic
by GraphicsDisplay
« Back to documentation index
SPI16 Class Reference
SPI 16bit interface.
More...
#include <SPI16.h >
Inherits Protocols .
Public Member Functions
SPI16 (int Hz, PinName mosi, PinName miso, PinName sclk, PinName CS, PinName reset, PinName DC=NC)
Create an SPI 8bit display interface with 3 control pins.
Protected Member Functions
virtual void wr_cmd8 (unsigned char cmd)
Send 8bit command to display controller.
virtual void wr_data8 (unsigned char data)
Send 8bit data to display controller.
virtual void wr_cmd16 (unsigned short cmd)
Send 2x8bit command to display controller.
virtual void wr_data16 (unsigned short data)
Send 2x8bit data to display controller.
virtual void wr_gram (unsigned short data)
Send 16bit pixeldata to display controller.
virtual void wr_gram (unsigned short data, unsigned int count)
Send same 16bit pixeldata to display controller multiple times.
virtual void wr_grambuf (unsigned short *data, unsigned int lenght)
Send array of pixeldata shorts to display controller.
virtual unsigned short rd_gram (bool convert)
Read 16bit pixeldata from display controller (with dummy cycle)
virtual unsigned int rd_reg_data32 (unsigned char reg)
Read 4x8bit register data (with dummy cycle)
virtual unsigned int rd_extcreg_data32 (unsigned char reg, unsigned char SPIreadenablecmd)
Read 3x8bit ExtendedCommands register data.
virtual void dummyread ()
ILI932x specific, does a dummy read cycle, number of bits is protocol dependent for PAR protocols: a signle RD bit toggle for SPI8 : 8clocks for SPI16 : 16 clocks.
virtual void reg_select (unsigned char reg, bool forread=false)
ILI932x specific, select register for a successive write or read.
virtual void reg_write (unsigned char reg, unsigned short data)
ILI932x specific, write register with data.
virtual unsigned short reg_read (unsigned char reg)
ILI932x specific, read register.
virtual void hw_reset ()
HW reset sequence (without display init commands)
virtual void BusEnable (bool enable)
Set ChipSelect high or low.
Detailed Description
SPI 16bit interface.
Definition at line 10 of file SPI16.h .
Constructor & Destructor Documentation
SPI16
(
int
Hz ,
PinName
mosi ,
PinName
miso ,
PinName
sclk ,
PinName
CS ,
PinName
reset ,
PinName
DC = NC
)
Create an SPI 8bit display interface with 3 control pins.
Parameters:
SPI mosi
SPI miso
SPI sclk
CS pin connected to CS of display
reset pin connected to RESET of display
DC pin connected to data/command of display
Definition at line 21 of file SPI16.cpp .
Member Function Documentation
void BusEnable
(
bool
enable )
[protected, virtual]
void dummyread
(
)
[protected, virtual]
ILI932x specific, does a dummy read cycle, number of bits is protocol dependent for PAR protocols: a signle RD bit toggle for SPI8 : 8clocks for SPI16 : 16 clocks.
Implements Protocols .
Definition at line 128 of file SPI16.cpp .
void hw_reset
(
)
[protected, virtual]
HW reset sequence (without display init commands)
Implements Protocols .
Definition at line 175 of file SPI16.cpp .
unsigned int rd_extcreg_data32
(
unsigned char
reg ,
unsigned char
SPIreadenablecmd
)
[protected, virtual]
Read 3x8bit ExtendedCommands register data.
Parameters:
reg the register to read
SPIreadenablecmd vendor/device specific cmd to read EXTC registers
Returns: data as uint
Note: EXTC regs (0xB0 to 0xFF) are read/write registers but needs special cmd to be read in SPI mode
Implements Protocols .
Definition at line 111 of file SPI16.cpp .
unsigned short rd_gram
(
bool
convert )
[protected, virtual]
Read 16bit pixeldata from display controller (with dummy cycle)
Parameters:
convert true/false. Convert 18bit to 16bit, some controllers returns 18bit
Returns: 16bit color
Implements Protocols .
Definition at line 78 of file SPI16.cpp .
unsigned int rd_reg_data32
(
unsigned char
reg )
[protected, virtual]
Read 4x8bit register data (with dummy cycle)
Parameters:
Returns: data as uint
Implements Protocols .
Definition at line 96 of file SPI16.cpp .
unsigned short reg_read
(
unsigned char
reg )
[protected, virtual]
void reg_select
(
unsigned char
reg ,
bool
forread = false
)
[protected, virtual]
ILI932x specific, select register for a successive write or read.
Parameters:
reg register to be selected
forread false = a write next (default), true = a read next
Note: forread only used by SPI protocols
Implements Protocols .
Definition at line 133 of file SPI16.cpp .
void reg_write
(
unsigned char
reg ,
unsigned short
data
)
[protected, virtual]
ILI932x specific, write register with data.
Parameters:
reg register to write
data 16bit data
Implements Protocols .
Definition at line 145 of file SPI16.cpp .
void wr_cmd16
(
unsigned short
cmd )
[protected, virtual]
Send 2x8bit command to display controller.
Parameters:
Note: in SPI_16 mode a single 16bit transfer will be done
Implements Protocols .
Definition at line 47 of file SPI16.cpp .
void wr_cmd8
(
unsigned char
cmd )
[protected, virtual]
Send 8bit command to display controller.
Note: switches spi format 16->8->16, better use wr_cmd16 with NOP in front
Parameters:
Implements Protocols .
Definition at line 33 of file SPI16.cpp .
void wr_data16
(
unsigned short
data )
[protected, virtual]
Send 2x8bit data to display controller.
Parameters:
Note: in SPI_16 mode a single 16bit transfer will be done
Implements Protocols .
Definition at line 53 of file SPI16.cpp .
void wr_data8
(
unsigned char
data )
[protected, virtual]
Send 8bit data to display controller.
Note: switches spi format 16->8->16, better use wr_data16 with repeated byte (if does not hurt)
Parameters:
Implements Protocols .
Definition at line 41 of file SPI16.cpp .
void wr_gram
(
unsigned short
data )
[protected, virtual]
Send 16bit pixeldata to display controller.
Parameters:
Implements Protocols .
Definition at line 57 of file SPI16.cpp .
void wr_gram
(
unsigned short
data ,
unsigned int
count
)
[protected, virtual]
Send same 16bit pixeldata to display controller multiple times.
Parameters:
data,: halfword to send
count,: how many
Implements Protocols .
Definition at line 61 of file SPI16.cpp .
void wr_grambuf
(
unsigned short *
data ,
unsigned int
lenght
)
[protected, virtual]
Send array of pixeldata shorts to display controller.
Parameters:
data,: unsigned short pixeldata array
lenght,: lenght (in shorts)
Implements Protocols .
Definition at line 69 of file SPI16.cpp .