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.
Diff: RA8875.h
- Revision:
- 29:422616aa04bd
- Parent:
- 25:9556a3a9b7cc
- Child:
- 30:e0f2da88bdf6
diff -r ed102fc442c4 -r 422616aa04bd RA8875.h
--- a/RA8875.h Fri Jan 17 17:24:05 2014 +0000
+++ b/RA8875.h Sun Jan 19 04:24:16 2014 +0000
@@ -12,7 +12,7 @@
// What better place for some test code than in here and the companion
// .cpp file. See also the bottom of this file.
-//#define TESTENABLE
+#define TESTENABLE
#define RGB(r,g,b) ( ((r<<8)&0xF800) | ((g<<3)&0x07E0) | (b>>3) )
@@ -66,25 +66,34 @@
BLOCK ///< Block cursor
} cursor_t;
-/// return values from functions
+// return values from functions moved into TextDisplay.h
//typedef enum
//{
// noerror,
// bad_parameter
//} RetCode_t;
+
/// This is a graphics library for the Raio RA8875 Display Controller chip
/// attached to a 4-wire SPI interface.
///
-/// It offers both primitive and high level APIs.
+/// It offers both primitive and high level APIs.\\
/// Central to this API is a coordinate system, where the origin (0,0) is in
/// the top-left corner of the display, and the width extends positive to the
/// right and the height extends positive toward the bottom.
///
/// As there are both graphics and text commands, one must take care to use
/// the proper coordinate system for each. Some of the text APIs are in units
-/// of column and row, which is measured in character positions (so dependent
-/// on the font size).
+/// of column and row, which is measured in character positions (and dependent
+/// on the font size), and other text APIs permit pixel level positioning.
+///
+/// @todo Add 2-Layer support.
+/// @todo Find out why it can't shift frequency after constructor runs.
+/// @todo Bitmap support.
+/// @todo Add Hardware reset signal.
+/// @todo Add Touch Screen support.
+/// @todo Add Keypad Support.
+/// @todo Add high level objects - x-y graph, meter, others...
///
class RA8875 : public GraphicsDisplay
{
@@ -240,7 +249,19 @@
/// @returns success/failure code. @see RetCode_t.
///
RetCode_t SetTextCursor(unsigned int x, unsigned int y);
-
+
+ /// Get the current cursor horizontal position in pixels.
+ ///
+ /// @returns cursor position horizontal offset.
+ ///
+ unsigned int GetTextCursor_X(void);
+
+ /// Get the current cursor vertical position in pixels.
+ ///
+ /// @returns cursor position vertical offset.
+ ///
+ unsigned int GetTextCursor_Y(void);
+
/// Configure additional Cursor Control settings.
///
/// This API lets you modify other cursor control settings;
@@ -770,7 +791,7 @@
/// - the number of bytes per vertical line (width of the array)
/// @returns error code.
///
- RetCode_t set_font(const unsigned char * font);
+ RetCode_t set_font(const unsigned char * font = NULL);
/// Get the RGB value for a DOS color.
///
@@ -824,6 +845,20 @@
///
RetCode_t init(void);
+ /// Internal function to put a character using the built-in (internal) font engine
+ ///
+ /// @param is the character to put to the screen.
+ /// @returns the character put.
+ ///
+ int _internal_putc(int c);
+
+ /// Internal function to put a character using the external font engine
+ ///
+ /// @param is the character to put to the screen.
+ /// @returns the character put.
+ ///
+ int _external_putc(int c);
+
/// Select the peripheral to use it.
///
/// @param chipsel when true will select the peripheral, and when false
@@ -855,6 +890,7 @@
DigitalOut cs; ///< chip select pin, assumed active low
DigitalOut res; ///< reset pin, assumed active low
const unsigned char * font; ///< reference to an external font somewhere in memory
+ unsigned int cursor_x, cursor_y; ///< used for external fonts only
#ifdef PERF_METRICS
typedef enum