BMP file on SD-card¶

The BMP file on SD-card library saves the screen as a BMP file on the SD-card and loads a BMP file into the frame-buffer, ready to be displayed. Everything is performed at run-time.

Tip

This method is not recommended for MCUs, as the management of the SD-card is rather slow and prone to interferences.

The BMP file on SD-card library is available on the Commercial edition. The file is RGB 5-5-5 coded.

Configure¶

Warning

Ensure the screen is declared and initialised according to the configuration procedure.

#include "hV_File_BMP.h"


The pre-processor statement includes the file library.

Danger

This library requires the external SD library to manage the SD-card.

Ensure the external SD library is installed and properly configured.

File_BMP myFile(&myScreen);


The constructor File_BMP() sets the link to the screen.

  1 2 3 4 5 6 7 8 9 10 bool result = myFile.beginFileSystem(pinCS, portSPI, pinDetect, pinLevel); if (result == false) { hV_HAL_printf("=== SD-card error"); hV_HAL_crlf(); } 

beginFileSystem() checks an SD-card is available and initialises it.

The required parameter is

• The first line sets the pin for selecting the SD-card.

The optional parameters are

• The second line sets the number of the SPI port, 0 by default;

• The third line sets the pin for the detect signal, NOT_CONNECTED or -1 par default;

• The fourth line sets the level of detect signal, LOW by default.

beginFileSystem() returns TRUE is successful.

Use¶

Save¶

 1 2 myFile.saveScreen("File_BMP", 1); 

saveScreen() saves the screen on the SD-card as a BMP file. The file is RGB 5-5-5 coded.

The required parameter is

• The first line provides the name of the file without the .BMP extension.

The optional parameter is

• The second line sets the multiplier, 1 by default.

The default value of 1 is recommended for medium and large screens, and 2 for small screens.

saveWindow() save a window on a BMP file.

 1 2 myFile.readScreen("File_BMP", 1); 

readScreen() displays a BMP file from the SD-card on the frame-buffer, to be displayed with flush().

The required parameter is

• The first line provides the name of the file without the .BMP extension.

The optional parameter is

• The second line sets the multiplier, 1 by default.

The function doesn't check the size or the multiplier of the image.

End¶

myFile.endFileSystem();


endFileSystem() closes the SD-card.

Example¶

This is the core of the code from example File_BMP.ino.

void fileWriteReadBMP()
{
// Initialise
bool result = myFile.beginFileSystem(5);
if (result == false)
{
hV_HAL_printf("=== SD-card error");
hV_HAL_crlf();
return;
}

myScreen.setOrientation(myOrientation);
myScreen.selectFont(fontLarge);

myScreen.clear();
myScreen.gText(8, 8, "File BMP");
myScreen.flushFast();

// Write to SD-card
myFile.saveScreen("File_BMP");
wait(4);

myScreen.clear();
myScreen.gText(4, 4, "Reading the file back...");
myScreen.flush();
wait(4);