Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: memLCD-Demo memLCD-Demo memLCD-Demo MemLCD-Temperature-Humidity-Demo ... more
You are viewing an older revision! See the latest version
Homepage

Caution¶
This library builds upon the asynchronous SPI interface provided by mbed, but not all platforms currently support this. So, make sure your platform is capable of asynchronous SPI (all Silicon Labs platforms are), otherwise you will get compiler errors!
Usage¶
example program
#include "LS013B7DH03.h"
#include "mbed_logo.h"
/******************** Define I/O *****************************/
DigitalOut myled(LED1);
#define SCK PD2
#define MOSI PD0
DigitalOut CS(PD3);
DigitalOut EXTCOM(PC4);
DigitalOut EXTMODE(PD4);
DigitalOut DISP(PD5);
SPI displaySPI(MOSI, NC, SCK);
silabs::LS013B7DH03 display(&displaySPI, &CS, &EXTCOM);
/******************** Define Timers *****************************/
LowPowerTicker timeKeeping;
/***************** Define global variables **********************/
#define INIT_SECONDS 17600
volatile uint32_t prevSeconds = INIT_SECONDS, seconds = INIT_SECONDS;
volatile bool refreshed = false;
/***************** Define callback handlers *********************/
void secondsCallback(void);
void refreshCallback(void);
void secondsCallback(void) {
seconds++;
}
/**
* Callback for refresh completion
*/
void refreshCallback(void) {
refreshed = true;
}
/*************************** MAIN *******************************/
int main() {
// Enable the LCD
EXTMODE = 1;
DISP = 1;
// Start generating the 1Hz call for keeping time
timeKeeping.attach(&secondsCallback, 1.0f);
// Reset the LCD to a blank state. (All white)
refreshed = false;
display.clearImmediate(refreshCallback);
while(refreshed == false) sleep();
printf("Initialization done! \n");
// Apply mbed logo bitmap to the pixel buffer
display.showBMP((uint8_t*)mbed_enabled_logo, 128, 128, 0, 0);
display.printf("I like MBED!");
// Push update to the display
refreshed = false;
display.update(refreshCallback);
// Sleep while doing the transmit
while(refreshed == false) sleep();
// Go into clock mode
while(1) {
sleep();
// In clock mode, only update once per second
if(prevSeconds != seconds) {
display.locate(4,15);
display.printf("%02d:%02d:%02d", (seconds / 1200) % 24, (seconds / 60) % 60, seconds % 60);
if(refreshed == true) {
prevSeconds = seconds;
refreshed = false;
display.update(refreshCallback);
}
}
}
}