Refactoring

This commit is contained in:
Armel FAUVEAU
2024-04-02 05:57:47 +02:00
parent 6171da9fd0
commit 96664f93b9

View File

@@ -47,15 +47,16 @@ void ST7565_DrawLine(const unsigned int Column, const unsigned int Line, const u
} }
// Optimization #ifdef ENABLE_FEAT_F4HWN
// // Optimization
// ST7565_BlitScreen(0) = ST7565_BlitStatusLine() //
// ST7565_BlitScreen(1..7) = ST7565_BlitLine() // ST7565_BlitScreen(0) = ST7565_BlitStatusLine()
// ST7565_BlitScreen(8) = ST7565_BlitFullScreen() // ST7565_BlitScreen(1..7) = ST7565_BlitLine()
// // ST7565_BlitScreen(8) = ST7565_BlitFullScreen()
//
static void ST7565_BlitScreen(uint8_t line) static void ST7565_BlitScreen(uint8_t line)
{ {
SPI_ToggleMasterMode(&SPI0->CR, false); SPI_ToggleMasterMode(&SPI0->CR, false);
ST7565_WriteByte(0x40); ST7565_WriteByte(0x40);
@@ -75,52 +76,49 @@ static void ST7565_BlitScreen(uint8_t line)
} }
SPI_ToggleMasterMode(&SPI0->CR, true); SPI_ToggleMasterMode(&SPI0->CR, true);
} }
void ST7565_BlitFullScreen(void) void ST7565_BlitFullScreen(void)
{ {
ST7565_BlitScreen(8); ST7565_BlitScreen(8);
} }
void ST7565_BlitLine(unsigned line) void ST7565_BlitLine(unsigned line)
{ {
ST7565_BlitScreen(line + 1); ST7565_BlitScreen(line + 1);
} }
void ST7565_BlitStatusLine(void) void ST7565_BlitStatusLine(void)
{ {
ST7565_BlitScreen(0); ST7565_BlitScreen(0);
} }
#else
/* void ST7565_BlitFullScreen(void)
void ST7565_BlitFullScreen(void) {
{
SPI_ToggleMasterMode(&SPI0->CR, false); SPI_ToggleMasterMode(&SPI0->CR, false);
ST7565_WriteByte(0x40); ST7565_WriteByte(0x40);
for (unsigned line = 0; line < FRAME_LINES; line++) { for (unsigned line = 0; line < FRAME_LINES; line++) {
DrawLine(0, line+1, gFrameBuffer[line], LCD_WIDTH); DrawLine(0, line+1, gFrameBuffer[line], LCD_WIDTH);
} }
SPI_ToggleMasterMode(&SPI0->CR, true); SPI_ToggleMasterMode(&SPI0->CR, true);
} }
void ST7565_BlitLine(unsigned line) void ST7565_BlitLine(unsigned line)
{ {
SPI_ToggleMasterMode(&SPI0->CR, false); SPI_ToggleMasterMode(&SPI0->CR, false);
ST7565_WriteByte(0x40); // start line ? ST7565_WriteByte(0x40); // start line ?
DrawLine(0, line+1, gFrameBuffer[line], LCD_WIDTH); DrawLine(0, line+1, gFrameBuffer[line], LCD_WIDTH);
SPI_ToggleMasterMode(&SPI0->CR, true); SPI_ToggleMasterMode(&SPI0->CR, true);
} }
void ST7565_BlitStatusLine(void) void ST7565_BlitStatusLine(void)
{ // the top small text line on the display { // the top small text line on the display
SPI_ToggleMasterMode(&SPI0->CR, false); SPI_ToggleMasterMode(&SPI0->CR, false);
ST7565_WriteByte(0x40); // start line ? ST7565_WriteByte(0x40); // start line ?
DrawLine(0, 0, gStatusLine, LCD_WIDTH); DrawLine(0, 0, gStatusLine, LCD_WIDTH);
SPI_ToggleMasterMode(&SPI0->CR, true); SPI_ToggleMasterMode(&SPI0->CR, true);
} }
*/ #endif
void ST7565_FillScreen(uint8_t value) void ST7565_FillScreen(uint8_t value)
{ {