Save 68 bytes

This commit is contained in:
Armel FAUVEAU
2024-04-02 05:36:20 +02:00
parent 4276211ed9
commit 6171da9fd0
3 changed files with 52 additions and 2 deletions

View File

@@ -46,6 +46,53 @@ void ST7565_DrawLine(const unsigned int Column, const unsigned int Line, const u
SPI_ToggleMasterMode(&SPI0->CR, true); SPI_ToggleMasterMode(&SPI0->CR, true);
} }
// Optimization
//
// ST7565_BlitScreen(0) = ST7565_BlitStatusLine()
// ST7565_BlitScreen(1..7) = ST7565_BlitLine()
// ST7565_BlitScreen(8) = ST7565_BlitFullScreen()
//
static void ST7565_BlitScreen(uint8_t line)
{
SPI_ToggleMasterMode(&SPI0->CR, false);
ST7565_WriteByte(0x40);
if(line == 0)
{
DrawLine(0, 0, gStatusLine, LCD_WIDTH);
}
else if(line <= FRAME_LINES)
{
DrawLine(0, line, gFrameBuffer[line - 1], LCD_WIDTH);
}
else
{
for (line = 1; line <= FRAME_LINES; line++) {
DrawLine(0, line, gFrameBuffer[line - 1], LCD_WIDTH);
}
}
SPI_ToggleMasterMode(&SPI0->CR, true);
}
void ST7565_BlitFullScreen(void)
{
ST7565_BlitScreen(8);
}
void ST7565_BlitLine(unsigned line)
{
ST7565_BlitScreen(line + 1);
}
void ST7565_BlitStatusLine(void)
{
ST7565_BlitScreen(0);
}
/*
void ST7565_BlitFullScreen(void) void ST7565_BlitFullScreen(void)
{ {
SPI_ToggleMasterMode(&SPI0->CR, false); SPI_ToggleMasterMode(&SPI0->CR, false);
@@ -71,6 +118,9 @@ void ST7565_BlitStatusLine(void)
DrawLine(0, 0, gStatusLine, LCD_WIDTH); DrawLine(0, 0, gStatusLine, LCD_WIDTH);
SPI_ToggleMasterMode(&SPI0->CR, true); SPI_ToggleMasterMode(&SPI0->CR, true);
} }
*/
void ST7565_FillScreen(uint8_t value) void ST7565_FillScreen(uint8_t value)
{ {

View File

@@ -181,7 +181,7 @@ void UI_DisplayStatus()
for (uint8_t i = 71; i < 79; i++) for (uint8_t i = 71; i < 79; i++)
{ {
gFrameBuffer[-1][i] ^= 0x7F; gStatusLine[i] ^= 0x7F;
} }
x1 = x; x1 = x;
} }

View File

@@ -121,7 +121,7 @@ void UI_DisplayWelcome(void)
UI_PrintStringSmallNormal(Version, 0, 127, 6); UI_PrintStringSmallNormal(Version, 0, 127, 6);
#endif #endif
ST7565_BlitStatusLine(); // blank status line //ST7565_BlitStatusLine(); // blank status line : I think it's useless
ST7565_BlitFullScreen(); ST7565_BlitFullScreen();
} }
} }