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.
Fork of UniGraphicCyrillic by
Diff: Display/LCD.cpp
- Revision:
- 4:12ba0ecc2c1f
- Parent:
- 3:48f3282c2be8
- Child:
- 7:bb0383b91104
--- a/Display/LCD.cpp Sat Feb 14 17:42:21 2015 +0000
+++ b/Display/LCD.cpp Sun Feb 15 20:06:07 2015 +0000
@@ -1,4 +1,10 @@
-/* mbed library for the mbed Lab Board 128*32 pixel LCD
+/* mbed UniGraphic library - universal LCD driver class
+ * Copyright (c) 2015 Giuliano Dianda
+ * Released under the MIT License: http://mbed.org/license/mit
+ *
+ * Derived work of:
+ *
+ * mbed library for the mbed Lab Board 128*32 pixel LCD
* use C12832 controller
* Copyright (c) 2012 Peter Drescher - DC2PD
* Released under the MIT License: http://mbed.org/license/mit
@@ -36,8 +42,8 @@
buffer16 = (unsigned short*)buffer;
draw_mode = NORMAL;
set_orientation(1);
- foreground(Black);
- background(White);
+ foreground(White);
+ background(Black);
set_auto_up(true);
// cls();
// locate(0,0);
@@ -64,8 +70,8 @@
draw_mode = NORMAL;
// cls();
set_orientation(1);
- foreground(Black);
- background(White);
+ foreground(White);
+ background(Black);
set_auto_up(true);
// locate(0,0);
@@ -84,25 +90,17 @@
{
proto->wr_data8(data);
}
-void LCD::wr_data8(unsigned char data, unsigned int count)
- {
- proto->wr_data8(data, count);
- }
-void LCD::wr_data8buf(unsigned char* data, unsigned int lenght)
- {
- proto->wr_data8buf(data, lenght);
- }
void LCD::wr_cmd16(unsigned short cmd)
{
proto->wr_cmd16(cmd);
}
-void LCD::wr_data16(unsigned short data, unsigned int count)
+void LCD::wr_gram(unsigned short data, unsigned int count)
{
- proto->wr_data16(data, count);
+ proto->wr_gram(data, count);
}
-void LCD::wr_data16buf(unsigned short* data, unsigned int lenght)
+void LCD::wr_grambuf(unsigned short* data, unsigned int lenght)
{
- proto->wr_data16buf(data, lenght);
+ proto->wr_grambuf(data, lenght);
}
void LCD::hw_reset()
{
@@ -257,8 +255,8 @@
// if(draw_mode == NORMAL)
// {
- if(color == Black) buffer[(x + ((y>>3)*LCDSIZE_X))^1] &= ~(1 << (y&7)); // erase pixel
- else buffer[(x + ((y>>3)*LCDSIZE_X))^1] |= (1 << (y&7)); // set pixel
+ if(color) buffer[(x + ((y>>3)*LCDSIZE_X))^1] &= ~(1 << (y&7)); // erase pixel
+ else buffer[(x + ((y>>3)*LCDSIZE_X))^1] |= (1 << (y&7)); //Black=0000, set pixel
// }
// else
// { // XOR mode
@@ -275,13 +273,14 @@
// wr_cmd8(0x10|(col_offset>>4)); // set column hi nibble
wr_cmd16(setcolcmd);
wr_cmd8(0xB0|(page+page_offset)); // set page
- wr_data16buf(buffer16+i, LCDSIZE_X>>1); // send whole page pixels
+ wr_grambuf(buffer16+i, LCDSIZE_X>>1); // send whole page pixels
i+=LCDSIZE_X>>1;
}
}
void LCD::cls(void)
{
- memset(buffer,0x00,LCDSIZE_X*LCDPAGES); // clear display buffer
+ unsigned short tmp = _background^0xFFFF;
+ memset(buffer,tmp,LCDSIZE_X*LCDPAGES); // clear display buffer
unsigned short setcolcmd = 0x0010 | ((col_offset&0xF)<<8) | (col_offset>>4);
for(int page=0; page<LCDPAGES; page++)
{
@@ -289,6 +288,6 @@
// wr_cmd8(0x10|(col_offset>>4)); // set column hi nibble
wr_cmd16(setcolcmd);
wr_cmd8(0xB0|(page+page_offset)); // set page
- wr_data16(0, LCDSIZE_X>>1); // send whole page pixels =0
+ wr_gram(tmp, LCDSIZE_X>>1); // send whole page pixels =0
}
}
\ No newline at end of file
