2in13_V3 Add some comments
This commit is contained in:
parent
ce75f349ac
commit
0895fc1e5a
4 changed files with 214 additions and 38 deletions
|
@ -78,6 +78,10 @@ Epd::~Epd()
|
|||
{
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
function : Pin definition
|
||||
parameter:
|
||||
******************************************************************************/
|
||||
Epd::Epd()
|
||||
{
|
||||
reset_pin = RST_PIN;
|
||||
|
@ -88,27 +92,32 @@ Epd::Epd()
|
|||
height = EPD_HEIGHT;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief: basic function for sending commands
|
||||
*/
|
||||
/******************************************************************************
|
||||
function : send command
|
||||
parameter:
|
||||
command : Command register
|
||||
******************************************************************************/
|
||||
void Epd::SendCommand(unsigned char command)
|
||||
{
|
||||
DigitalWrite(dc_pin, LOW);
|
||||
SpiTransfer(command);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief: basic function for sending data
|
||||
*/
|
||||
/******************************************************************************
|
||||
function : send data
|
||||
parameter:
|
||||
Data : Write data
|
||||
******************************************************************************/
|
||||
void Epd::SendData(unsigned char data)
|
||||
{
|
||||
DigitalWrite(dc_pin, HIGH);
|
||||
SpiTransfer(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief: Wait until the busy_pin goes HIGH
|
||||
*/
|
||||
/******************************************************************************
|
||||
function : Wait until the busy_pin goes LOW
|
||||
parameter:
|
||||
******************************************************************************/
|
||||
void Epd::WaitUntilIdle(void)
|
||||
{
|
||||
while(1) { //LOW: idle, HIGH: busy
|
||||
|
@ -118,6 +127,14 @@ void Epd::WaitUntilIdle(void)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Setting the display window
|
||||
parameter:
|
||||
Xstart : X-axis starting position
|
||||
Ystart : Y-axis starting position
|
||||
Xend : End position of X-axis
|
||||
Yend : End position of Y-axis
|
||||
******************************************************************************/
|
||||
void Epd::SetWindows(unsigned char Xstart, unsigned char Ystart, unsigned char Xend, unsigned char Yend)
|
||||
{
|
||||
SendCommand(0x44); // SET_RAM_X_ADDRESS_START_END_POSITION
|
||||
|
@ -131,6 +148,12 @@ void Epd::SetWindows(unsigned char Xstart, unsigned char Ystart, unsigned char X
|
|||
SendData((Yend >> 8) & 0xFF);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Set Cursor
|
||||
parameter:
|
||||
Xstart : X-axis starting position
|
||||
Ystart : Y-axis starting position
|
||||
******************************************************************************/
|
||||
void Epd::SetCursor(unsigned char Xstart, unsigned char Ystart)
|
||||
{
|
||||
SendCommand(0x4E); // SET_RAM_X_ADDRESS_COUNTER
|
||||
|
@ -141,6 +164,11 @@ void Epd::SetCursor(unsigned char Xstart, unsigned char Ystart)
|
|||
SendData((Ystart >> 8) & 0xFF);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Send lut data and configuration
|
||||
parameter:
|
||||
lut : lut data
|
||||
******************************************************************************/
|
||||
void Epd::Lut(unsigned char *lut)
|
||||
{
|
||||
unsigned char count;
|
||||
|
@ -161,6 +189,11 @@ void Epd::Lut(unsigned char *lut)
|
|||
SendData(*(lut+158));
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Initialize the e-Paper register
|
||||
parameter:
|
||||
Mode : Mode selection
|
||||
******************************************************************************/
|
||||
int Epd::Init(char Mode)
|
||||
{
|
||||
/* this calls the peripheral hardware interface, see epdif */
|
||||
|
@ -236,11 +269,10 @@ int Epd::Init(char Mode)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief: module reset.
|
||||
* often used to awaken the module in deep sleep,
|
||||
* see Epd::Sleep();
|
||||
*/
|
||||
/******************************************************************************
|
||||
function : Software reset
|
||||
parameter:
|
||||
******************************************************************************/
|
||||
void Epd::Reset(void)
|
||||
{
|
||||
DigitalWrite(reset_pin, HIGH);
|
||||
|
@ -251,6 +283,10 @@ void Epd::Reset(void)
|
|||
DelayMs(20);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Clear screen
|
||||
parameter:
|
||||
******************************************************************************/
|
||||
void Epd::Clear(void)
|
||||
{
|
||||
int w, h;
|
||||
|
@ -270,6 +306,11 @@ void Epd::Clear(void)
|
|||
WaitUntilIdle();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Sends the image buffer in RAM to e-Paper and displays
|
||||
parameter:
|
||||
frame_buffer : Image data
|
||||
******************************************************************************/
|
||||
void Epd::Display(const unsigned char* frame_buffer)
|
||||
{
|
||||
int w = (EPD_WIDTH % 8 == 0)? (EPD_WIDTH / 8 ): (EPD_WIDTH / 8 + 1);
|
||||
|
@ -291,6 +332,11 @@ void Epd::Display(const unsigned char* frame_buffer)
|
|||
WaitUntilIdle();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Refresh a base image
|
||||
parameter:
|
||||
frame_buffer : Image data
|
||||
******************************************************************************/
|
||||
void Epd::DisplayPartBaseImage(const unsigned char* frame_buffer)
|
||||
{
|
||||
int w = (EPD_WIDTH % 8 == 0)? (EPD_WIDTH / 8 ): (EPD_WIDTH / 8 + 1);
|
||||
|
@ -319,7 +365,12 @@ void Epd::DisplayPartBaseImage(const unsigned char* frame_buffer)
|
|||
WaitUntilIdle();
|
||||
}
|
||||
|
||||
void Epd::DisplayPart(const unsigned char* frame_buffer)
|
||||
/******************************************************************************
|
||||
function : Sends the image buffer in RAM to e-Paper and partial refresh
|
||||
parameter:
|
||||
frame_buffer : Image data
|
||||
******************************************************************************/
|
||||
void Epd::DisplayPart(const unsigned char* )
|
||||
{
|
||||
int w = (EPD_WIDTH % 8 == 0)? (EPD_WIDTH / 8 ): (EPD_WIDTH / 8 + 1);
|
||||
int h = EPD_HEIGHT;
|
||||
|
@ -340,6 +391,10 @@ void Epd::DisplayPart(const unsigned char* frame_buffer)
|
|||
WaitUntilIdle();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Clear screen
|
||||
parameter:
|
||||
******************************************************************************/
|
||||
void Epd::ClearPart(void)
|
||||
{
|
||||
int w, h;
|
||||
|
@ -359,14 +414,10 @@ void Epd::ClearPart(void)
|
|||
WaitUntilIdle();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief: After this command is transmitted, the chip would enter the
|
||||
* deep-sleep mode to save power.
|
||||
* The deep sleep mode would return to standby by hardware reset.
|
||||
* The only one parameter is a check code, the command would be
|
||||
* executed if check code = 0xA5.
|
||||
* You can use Epd::Init() to awaken
|
||||
*/
|
||||
/******************************************************************************
|
||||
function : Enter sleep mode
|
||||
parameter:
|
||||
******************************************************************************/
|
||||
void Epd::Sleep()
|
||||
{
|
||||
SendCommand(0x10); //enter deep sleep
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue