Library to control a Graphics TFT connected to 4-wire SPI - revised for the Raio RA8875 Display Controller.

Dependents:   FRDM_RA8875_mPaint RA8875_Demo RA8875_KeyPadDemo SignalGenerator ... more

Fork of SPI_TFT by Peter Drescher

See Components - RA8875 Based Display

Enhanced touch-screen support - where it previous supported both the Resistive Touch and Capacitive Touch based on the FT5206 Touch Controller, now it also has support for the GSL1680 Touch Controller.

Offline Help Manual (Windows chm)

/media/uploads/WiredHome/ra8875.zip.bin (download, rename to .zip and unzip)

Files at this revision

API Documentation at this revision

Comitter:
WiredHome
Date:
Sat Feb 27 22:27:49 2016 +0000
Parent:
105:4f116006ba1f
Child:
107:f9ccffcb84f1
Commit message:
Improved support for 8-bit color, for pixel drawing, RenderImageFile and PrintScreen.

Changed in this revision

GraphicsDisplay.h Show annotated file Show diff for this revision Revisions of this file
RA8875.cpp Show annotated file Show diff for this revision Revisions of this file
RA8875.h Show annotated file Show diff for this revision Revisions of this file
--- a/GraphicsDisplay.h	Sat Feb 27 18:40:35 2016 +0000
+++ b/GraphicsDisplay.h	Sat Feb 27 22:27:49 2016 +0000
@@ -198,10 +198,10 @@
     /// from the previously selected external font.
     ///
     /// @param[in] c is the character of interest.
-    /// @param[inout] width is a pointer to where the width will be stored.
+    /// @param[in, out] width is a pointer to where the width will be stored.
     ///     This parameter is NULL tested and will only be written if not null
     ///     which is convenient if you only want the height.
-    /// @param[inout] height is a pointer to where the height will be stored.
+    /// @param[in, out] height is a pointer to where the height will be stored.
     ///     This parameter is NULL tested and will only be written if not null
     ///     which is convenient if you only want the width.
     /// @returns a pointer to the raw character data or NULL if not found.
--- a/RA8875.cpp	Sat Feb 27 18:40:35 2016 +0000
+++ b/RA8875.cpp	Sat Feb 27 22:27:49 2016 +0000
@@ -216,7 +216,7 @@
 {
     unsigned char mwcr1 = ReadCommand(0x41) & ~0x01; // retain all but the currently selected layer
 
-    if (screenwidth >= 800 && screenheight >= 480 && screenbpp == 8) {
+    if (screenwidth >= 800 && screenheight >= 480 && screenbpp > 8) {
         return bad_parameter;
     } else if (layer > 1) {
         return bad_parameter;
@@ -568,6 +568,10 @@
         return false;
 }
 
+// RRRR RGGG GGGB BBBB
+// 4321 0543 2104 3210
+//           RRRG GGBB
+//           2102 1010
 uint8_t RA8875::_cvt16to8(color_t c16)
 {
     return ((c16 >> 8) & 0xE0)
@@ -575,15 +579,23 @@
         | ((c16 >> 3) & 0x03);
 }
 
+//           RRRG GGBB
+//           2102 1010
+// RRRR RGGG GGGB BBBB
+// 2101 0543 2104 3210
 color_t RA8875::_cvt8to16(uint8_t c8)
 {
-    color_t c16 = ((c8 & 0xE0) << 8)
-        | ((c8 & 0xC0) << 5)
-        | ((c8 & 0x1C) << 6)
-        | ((c8 & 0x1C) << 3)
-        | ((c8 & 0x03) << 3)
-        | ((c8 & 0x03) << 1)
-        | ((c8 & 0x03) >> 1);
+    color_t c16;
+    color_t temp = (color_t)c8;
+    
+    c16 = ((temp & 0xE0) << 8)
+        | ((temp & 0xC0) << 5)
+        | ((temp & 0x1C) << 6)
+        | ((temp & 0x1C) << 3)
+        | ((temp & 0x03) << 3)
+        | ((temp & 0x03) << 1)
+        | ((temp & 0x03) >> 1);
+    c16 = (c16 << 8) | (c16 >> 8);
     return c16;
 }
 
@@ -1115,7 +1127,8 @@
     _select(true);
     _spiwrite(0x40);         // Cmd: read data
     _spiwrite(0x00);         // dummy read
-    _spiwrite(0x00);         // dummy read  [20150201: Required to properly align the data stream. Not yet sure why...]
+    if (screenbpp == 16)
+        _spiwrite(0x00);     // dummy read is only necessary when in 16-bit mode
     while (count--) {
         if (screenbpp == 16) {
             pixel  = _spiread();
@@ -2866,4 +2879,3 @@
 }
 
 #endif // TESTENABLE
-
--- a/RA8875.h	Sat Feb 27 18:40:35 2016 +0000
+++ b/RA8875.h	Sat Feb 27 22:27:49 2016 +0000
@@ -43,7 +43,7 @@
 ///
 /// @subsection Touch_Panel_Enable Touch Panel Enable
 ///
-/// @see TouchPanelInit has two forms - fully automatic, and controlled. See the APIs for
+/// See @ref TouchPanelInit has two forms - fully automatic, and controlled. See the APIs for
 /// details.
 ///
 /// @subsection Touch_Panel_Calibration
@@ -270,7 +270,7 @@
     /// }
     /// @endcode
     ///
-    /// @param cmd is the command to execute. @see filecmd_t.
+    /// @param cmd is the command to execute. See @ref filecmd_t.
     /// @param buffer is a pointer to the buffer being passed.
     /// @param size is the number of bytes in the buffer.
     ///
@@ -312,6 +312,11 @@
     
     /// Initialize the driver.
     ///
+    /// The RA8875 can scale to 800x600, and it supports 8 or 16-bit color. It also supports
+    /// layers, but it cannot support layers at the maximum color and screen size. When configured
+    /// under 800x600, it will support both 16-bit and 2 layers. But at 800x600, it can 
+    /// support either 16-bit color, or 2 layers, but not both.
+    ///
     /// @param[in] width in pixels to configure the display for. This parameter is optional
     ///             and the default is 480.
     /// @param[in] height in pixels to configure the display for. This parameter is optional
@@ -321,12 +326,12 @@
     ///             and the default is 16.
     /// @param[in] power defines if the display should be left in the power-on or off state.
     ///            If power is true (on), the backlight is set to 100%. This parameter is optional
-    ///             and the default is true (on). @see Power.
+    ///             and the default is true (on). See @ref Power.
     /// @param[in] keypadon defines if the keypad support should be enabled. This parameter is optional
-    ///             and the default is true (enabled). @see KeypadInit.
+    ///             and the default is true (enabled). See @ref KeypadInit.
     /// @param[in] touchscreeenon defines if the keypad support should be enabled. This parameter is optional
-    ///             and the default is true (enabled). @see TouchPanelInit.
-    /// @returns success/failure code. @see RetCode_t.
+    ///             and the default is true (enabled). See @ref TouchPanelInit.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t init(int width = 480, int height = 272, int color_bpp = 16, 
         bool poweron = true, bool keypadon = true, bool touchscreeenon = true);
@@ -334,7 +339,7 @@
     /// Get a pointer to the error code.
     ///
     /// This method returns a pointer to a text string that matches the
-    /// code. @see RetCode_t.
+    /// code. See @ref RetCode_t.
     ///
     /// @param[in] code is the return value from RetCode_t to look up.
     /// @returns a pointer to the text message representing code. If code
@@ -365,7 +370,7 @@
     ///
     /// @param[in] layer is 0 or 1 to select the layer for subsequent 
     ///     commands.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t SelectDrawingLayer(uint16_t layer);
     
@@ -408,13 +413,13 @@
     /// @endcode
     ///
     /// @param[in] mode sets the mode in the Layer Transparency Register.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t SetLayerMode(LayerMode_T mode);
     
     /// Get the Layer presentation mode.
     ///
-    /// This gets the current layer mode. @see LayerMode_T.
+    /// This gets the current layer mode. See @ref LayerMode_T.
     ///
     /// @returns layer mode.
     ///
@@ -437,7 +442,7 @@
     ///
     /// @param[in] layer1 sets the layer 1 transparency.
     /// @param[in] layer2 sets the layer 2 transparency.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     /// 
     RetCode_t SetLayerTransparency(uint8_t layer1, uint8_t layer2);
     
@@ -448,7 +453,7 @@
     /// 
     /// @param[in] color is optional and expressed in 16-bit format. If not
     ///     supplied, a default of Black is used.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t SetBackgroundTransparencyColor(color_t color = RGB(0,0,0));
  
@@ -468,7 +473,7 @@
     /// most uses. The alternate API is available if fine-grained control
     /// is needed for the numerous settings.
     ///
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t TouchPanelInit(void);
         
@@ -509,7 +514,7 @@
     ///                                 - TP_ADC_SAMPLE_16384_CLKS: Wait 16384 system clocks   
     ///                                 - TP_ADC_SAMPLE_32768_CLKS: Wait 32768 system clocks   
     ///                                 - TP_ADC_SAMPLE_65536_CLKS: Wait 65536 system clocks
-    /// @returns success/failure code. @see RetCode_t.   
+    /// @returns success/failure code. See @ref RetCode_t.   
     ///
     RetCode_t TouchPanelInit(uint8_t bTpEnable, uint8_t bTpAutoManual, uint8_t bTpDebounce, 
         uint8_t bTpManualMode, uint8_t bTpAdcClkDiv, uint8_t bTpAdcSampleTime);
@@ -522,8 +527,8 @@
     /// @note The returned values are not in display (pixel) units but are in analog to
     ///     digital converter units.
     /// 
-    /// @note This API is usually not needed. @see TouchPanelComputeCalibration. 
-    ///     @see TouchPanelReadable.
+    /// @note This API is usually not needed. See @ref TouchPanelComputeCalibration. 
+    ///     See @ref TouchPanelReadable.
     /// 
     /// @param[out] x is the x scale a/d value.
     /// @param[out] y is the y scale a/d value.
@@ -545,8 +550,8 @@
     /// @note The returned values are not in display (pixel) units but are in analog to
     ///     digital converter units.
     /// 
-    /// @note This API is usually not needed. @see TouchPanelComputeCalibration. 
-    ///     @see TouchPanelReadable.
+    /// @note This API is usually not needed. See @ref TouchPanelComputeCalibration. 
+    ///     See @ref TouchPanelReadable.
     /// 
     /// @param[out] x is the x scale a/d value.
     /// @param[out] y is the y scale a/d value.
@@ -579,7 +584,7 @@
     ///    } while (t.read_ms() < 30000);
     /// @endcode
     ///
-    /// @param[inout] TouchPoint is a pointer to a point_t, which is set as the touch point, if a touch is registered.
+    /// @param[in, out] TouchPoint is a pointer to a point_t, which is set as the touch point, if a touch is registered.
     /// @returns a value indicating the state of the touch,
     ///         - no_cal:   no calibration matrix is available, touch coordinates are not returned.
     ///         - no_touch: no touch is detected, touch coordinates are not returned.
@@ -661,7 +666,7 @@
     /// @param[out] matrix is an optional parameter to hold the calibration matrix 
     ///             as a result of the calibration. This can be saved in  
     ///             non-volatile memory to recover the calibration after a power fail.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t TouchPanelComputeCalibration(point_t display[3], point_t screen[3], tpMatrix_t * matrix);
 
@@ -677,7 +682,7 @@
     /// @param[out] matrix is an optional parameter to hold the calibration matrix 
     ///             as a result of the calibration. This can be saved in  
     ///             non-volatile memory to recover the calibration after a power fail.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t TouchPanelCalibrate(tpMatrix_t * matrix = NULL);
 
@@ -697,14 +702,14 @@
     /// @param[in] maxwait_s is the maximum number of seconds to wait for a touch
     ///             calibration. If no touch panel installed, it then reports
     ///             touch_cal_timeout.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t TouchPanelCalibrate(const char * msg, tpMatrix_t * matrix = NULL, int maxwait_s = 15);
 
     /// Set the calibration matrix for the touch panel.
     ///
     /// This method is used to set the calibration matrix for the touch panel. After
-    /// performing the calibration (@see TouchPanelComputeCalibration), the matrix can be stored.
+    /// performing the calibration (See @ref TouchPanelComputeCalibration), the matrix can be stored.
     /// On a subsequence power cycle, the matrix may be restored from non-volatile and
     /// passed in to this method. It will then be held to perform the corrections when
     /// reading the touch panel point.
@@ -721,7 +726,7 @@
     /// @endcode
     /// 
     /// @param[in] matrix is a pointer to the touch panel calibration matrix.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t TouchPanelSetMatrix(tpMatrix_t * matrix);
    
@@ -770,7 +775,7 @@
     /// @param[in] interruptEnable when true, enables interrupts from keypress (default: false).
     /// @param[in] wakeupEnable when true, activates the wakeup function (default: false).
     ///
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t  KeypadInit(bool scanEnable = true, bool longDetect = false, 
         uint8_t sampleTime = 0, uint8_t scanFrequency = 0, 
@@ -856,7 +861,7 @@
     ///
     /// @param[in] command is the command to write.
     /// @param[in] data is data to be written to the command register.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t WriteCommandW(uint8_t command, uint16_t data);
 
@@ -867,7 +872,7 @@
     /// @param[in] command is the command to write.
     /// @param[in] data is optional data to be written to the command register
     ///     and only occurs if the data is in the range [0 - 0xFF].
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t WriteCommand(unsigned char command, unsigned int data = 0xFFFF);
     
@@ -876,7 +881,7 @@
     /// This is a high level command, and may invoke several primitives.
     ///
     /// @param[in] data is the data to write.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t WriteDataW(uint16_t data);
     
@@ -885,7 +890,7 @@
     /// This is a high level command, and may invoke several primitives.
     ///
     /// @param[in] data is the data to write.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t WriteData(unsigned char data);
     
@@ -966,7 +971,7 @@
     /// 
     /// @param[in] column is the horizontal position in character positions
     /// @param[in] row is the vertical position in character positions
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t locate(textloc_t column, textloc_t row);
 
@@ -980,7 +985,7 @@
     ///
     /// @param[in] x is the horizontal position in pixels (from the left edge)
     /// @param[in] y is the vertical position in pixels (from the top edge)
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t SetTextCursor(loc_t x, loc_t y);
 
@@ -994,7 +999,7 @@
     /// @endcode
     ///
     /// @param[in] p is the x:y point in pixels from the top-left.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t SetTextCursor(point_t p);
 
@@ -1031,7 +1036,7 @@
     /// @param[in] cursor can be set to NOCURSOR (default), IBEAM,
     ///         UNDER, or BLOCK.
     /// @param[in] blink can be set to true or false (default false)
-    /// @returns success/failure code. @see RetCode_t
+    /// @returns success/failure code. See @ref RetCode_t
     ///
     RetCode_t SetTextCursorControl(cursor_t cursor = NOCURSOR, bool blink = false);
     
@@ -1046,7 +1051,7 @@
     ///
     /// @note if either hScale or vScale is outside of its permitted range,
     ///     the command is not executed.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t SetTextFont(font_t font = ISO8859_1);
     
@@ -1087,7 +1092,7 @@
     ///         - rotate_90 (clockwise)
     ///         - rotate_180
     ///         - rotate_270 (clockwise)
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t SetOrientation(orientation_t angle = normal);
     
@@ -1121,7 +1126,7 @@
     /// 
     /// @note if either hScale or vScale is outside of its permitted range,
     ///     the command is not executed.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t SetTextFontControl(fill_t fillit = FILL, 
         HorizontalScale hScale = 1, 
@@ -1132,7 +1137,7 @@
     ///
     /// This command lets you set the font enlargement for both horizontal
     /// and vertical, independent of the rotation, background, and 
-    /// alignment. @see SetTextFontControl.
+    /// alignment. See @ref SetTextFontControl.
     ///
     /// @caution This command only operates on the RA8875 internal fonts.
     ///
@@ -1152,7 +1157,7 @@
     ///
     /// @note if either hScale or vScale is outside of its permitted range,
     ///     the command is not executed.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t SetTextFontSize(HorizontalScale hScale = 1, VerticalScale vScale = -1);
     
@@ -1190,7 +1195,7 @@
     ///
     /// @param[in] x is the horizontal position in pixels (from the left edge)
     /// @param[in] y is the vertical position in pixels (from the top edge)
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t SetGraphicsCursor(loc_t x, loc_t y);
     
@@ -1199,7 +1204,7 @@
     ///
     /// @param[in] x is the horizontal position in pixels (from the left edge)
     /// @param[in] y is the vertical position in pixels (from the top edge)
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t SetGraphicsCursorRead(loc_t x, loc_t y);
     
@@ -1218,7 +1223,7 @@
     /// @param[in] y is the top edge in pixels.
     /// @param[in] width is the window width in pixels.
     /// @param[in] height is the window height in pixels.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t window(loc_t x, loc_t y, dim_t width, dim_t height);
     
@@ -1227,7 +1232,7 @@
     /// The behavior is to clear the whole screen for the specified
     /// layer. When not specified, the active drawing layer is cleared.
     /// This command can also be used to specifically clear either,
-    /// or both layers. @see clsw().
+    /// or both layers. See @ref clsw().
     ///
     /// @code
     ///     lcd.cls();
@@ -1238,7 +1243,7 @@
     ///     1 is set, layer 1 is cleared. If both are set, both layers
     ///     are cleared. Any other value does not cause an action.
     ///     
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t cls(uint16_t layers = 0);
     
@@ -1246,7 +1251,7 @@
     ///
     /// The default behavior is to clear the whole screen. With the optional 
     /// parameter, the action can be restricted to the active window, which
-    /// can be set with the @see window method.
+    /// can be set with the See @ref window method.
     ///
     /// @code
     ///     lcd.window(20,20, 40,10);
@@ -1255,14 +1260,14 @@
     ///
     /// @param[in] region is an optional parameter that defaults to FULLWINDOW
     ///         or may be set to ACTIVEWINDOW.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t clsw(RA8875::Region_t region = FULLWINDOW);
 
     /// Set the background color.
     ///
     /// @param[in] color is expressed in 16-bit format.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t background(color_t color);
     
@@ -1271,14 +1276,14 @@
     /// @param[in] r is the red element of the color.
     /// @param[in] g is the green element of the color.
     /// @param[in] b is the blue element of the color.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t background(unsigned char r, unsigned char g, unsigned char b);
     
     /// Set the foreground color.
     ///
     /// @param[in] color is expressed in 16-bit format.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t foreground(color_t color);
     
@@ -1287,7 +1292,7 @@
     /// @param[in] r is the red element of the color.
     /// @param[in] g is the green element of the color.
     /// @param[in] b is the blue element of the color.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t foreground(unsigned char r, unsigned char g, unsigned char b);
     
@@ -1303,14 +1308,14 @@
     ///         set the forecolor!
     ///
     /// @param[in] p is the point_t defining the location.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t pixel(point_t p, color_t color);
     
     /// Draw a pixel in the current foreground color.
     ///
     /// @param[in] p is the point_t defining the location.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t pixel(point_t p);
         
@@ -1322,7 +1327,7 @@
     /// @param[in] x is the horizontal offset to this pixel.
     /// @param[in] y is the vertical offset to this pixel.
     /// @param[in] color defines the color for the pixel.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t pixel(loc_t x, loc_t y, color_t color);
     
@@ -1330,7 +1335,7 @@
     ///
     /// @param[in] x is the horizontal offset to this pixel.
     /// @param[in] y is the veritical offset to this pixel.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t pixel(loc_t x, loc_t y);
     
@@ -1348,7 +1353,7 @@
     /// @param[in] count is the number of pixels to write.
     /// @param[in] x is the horizontal position on the display.
     /// @param[in] y is the vertical position on the display.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t pixelStream(color_t * p, uint32_t count, loc_t x, loc_t y);
     
@@ -1358,7 +1363,7 @@
     /// @param[in] count is the number of pixels to read.
     /// @param[in] x is the horizontal offset to this pixel.
     /// @param[in] y is the vertical offset to this pixel.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t getPixelStream(color_t * p, uint32_t count, loc_t x, loc_t y);
     
@@ -1370,7 +1375,7 @@
     /// @param[in] p1 is the point to start the line.
     /// @param[in] p2 is the point to end the line.
     /// @param[in] color defines the foreground color.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t line(point_t p1, point_t p2, color_t color);
 
@@ -1380,7 +1385,7 @@
     ///
     /// @param[in] p1 is the point to start the line.
     /// @param[in] p2 is the point to end the line.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t line(point_t p1, point_t p2);
     
@@ -1394,7 +1399,7 @@
     /// @param[in] x2 is the horizontal end of the line.
     /// @param[in] y2 is the vertical end of the line.
     /// @param[in] color defines the foreground color.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t line(loc_t x1, loc_t y1, loc_t x2, loc_t y2, color_t color);
 
@@ -1406,7 +1411,7 @@
     /// @param[in] y1 is the vertical start of the line.
     /// @param[in] x2 is the horizontal end of the line.
     /// @param[in] y2 is the vertical end of the line.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t line(loc_t x1, loc_t y1, loc_t x2, loc_t y2);
 
@@ -1418,7 +1423,7 @@
     /// @param[in] rect defines the rectangle.
     /// @param[in] color defines the foreground color.
     /// @param[in] fillit is optional to FILL the rectangle. default is NOFILL.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t rect(rect_t rect, color_t color, fill_t fillit = NOFILL);
     
@@ -1430,7 +1435,7 @@
     /// @param[in] rect defines the rectangle.
     /// @param[in] color defines the foreground color.
     /// @param[in] fillit is optional to FILL the rectangle. default is NOFILL.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t fillrect(rect_t rect, color_t color, fill_t fillit = FILL);
 
@@ -1445,7 +1450,7 @@
     /// @param[in] y2 is the vertical end of the line.
     /// @param[in] color defines the foreground color.
     /// @param[in] fillit is optional to FILL the rectangle. default is FILL.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t rect(loc_t x1, loc_t y1, loc_t x2, loc_t y2, 
         color_t color, fill_t fillit = NOFILL);
@@ -1461,7 +1466,7 @@
     /// @param[in] y2 is the vertical end of the line.
     /// @param[in] color defines the foreground color.
     /// @param[in] fillit is optional to NOFILL the rectangle. default is FILL.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     virtual RetCode_t fillrect(loc_t x1, loc_t y1, loc_t x2, loc_t y2, 
         color_t color, fill_t fillit = FILL);
@@ -1475,7 +1480,7 @@
     /// @param[in] x2 is the horizontal end of the line.
     /// @param[in] y2 is the vertical end of the line.
     /// @param[in] fillit is optional to FILL the rectangle. default is NOFILL.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t rect(loc_t x1, loc_t y1, loc_t x2, loc_t y2, 
         fill_t fillit = NOFILL);
@@ -1502,7 +1507,7 @@
     ///         is returned.
     /// @param[in] color defines the foreground color.
     /// @param[in] fillit is optional to FILL the rectangle. default is NOFILL.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t fillroundrect(loc_t x1, loc_t y1, loc_t x2, loc_t y2, 
         dim_t radius1, dim_t radius2, color_t color, fill_t fillit = FILL);
@@ -1529,7 +1534,7 @@
     ///         is returned.
     /// @param[in] color defines the foreground color.
     /// @param[in] fillit is optional to FILL the rectangle. default is NOFILL.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t roundrect(loc_t x1, loc_t y1, loc_t x2, loc_t y2, 
         dim_t radius1, dim_t radius2, color_t color, fill_t fillit = NOFILL);
@@ -1552,7 +1557,7 @@
     ///         that this value < 1/2 the height of the rectangle, or bad_parameter 
     ///         is returned.
     /// @param[in] fillit is optional to FILL the rectangle. default is NOFILL.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t roundrect(loc_t x1, loc_t y1, loc_t x2, loc_t y2, 
         dim_t radius1, dim_t radius2, fill_t fillit = NOFILL);
@@ -1570,7 +1575,7 @@
     /// @param[in] y3 is the vertical for point 3.
     /// @param[in] color defines the foreground color.
     /// @param[in] fillit is optional to FILL the rectangle. default is NOFILL.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t triangle(loc_t x1, loc_t y1, loc_t x2, loc_t y2, 
         loc_t x3, loc_t y3, color_t color, fill_t fillit = NOFILL);
@@ -1588,7 +1593,7 @@
     /// @param[in] y3 is the vertical for point 3.
     /// @param[in] color defines the foreground color.
     /// @param[in] fillit is optional to FILL the rectangle. default is NOFILL.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t filltriangle(loc_t x1, loc_t y1, loc_t x2, loc_t y2, 
         loc_t x3, loc_t y3, color_t color, fill_t fillit = FILL);
@@ -1604,7 +1609,7 @@
     /// @param[in] x3 is the horizontal for point 3.
     /// @param[in] y3 is the vertical for point 3.
     /// @param[in] fillit is optional to FILL the rectangle. default is NOFILL.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t triangle(loc_t x1, loc_t y1, loc_t x2, loc_t y2, 
         loc_t x3, loc_t y3, fill_t fillit = NOFILL);
@@ -1618,7 +1623,7 @@
     /// @param[in] p defines the center of the circle.
     /// @param[in] radius defines the size of the circle.
     /// @param[in] color defines the foreground color.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t circle(point_t p, dim_t radius, color_t color, fill_t fillit = NOFILL);
 
@@ -1630,7 +1635,7 @@
     /// @param[in] p defines the center of the circle.
     /// @param[in] radius defines the size of the circle.
     /// @param[in] color defines the foreground color.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t fillcircle(point_t p, dim_t radius, color_t color, fill_t fillit = FILL);
 
@@ -1640,7 +1645,7 @@
     ///
     /// @param[in] p defines the center of the circle.
     /// @param[in] radius defines the size of the circle.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t circle(point_t p, dim_t radius, fill_t fillit = NOFILL);
 
@@ -1653,7 +1658,7 @@
     /// @param[in] y is the vertical center of the circle.
     /// @param[in] radius defines the size of the circle.
     /// @param[in] color defines the foreground color.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t circle(loc_t x, loc_t y, dim_t radius, color_t color, fill_t fillit = NOFILL);
 
@@ -1666,7 +1671,7 @@
     /// @param[in] y is the vertical center of the circle.
     /// @param[in] radius defines the size of the circle.
     /// @param[in] color defines the foreground color.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t fillcircle(loc_t x, loc_t y, dim_t radius, color_t color, fill_t fillit = FILL);
 
@@ -1677,7 +1682,7 @@
     /// @param[in] x is the horizontal center of the circle.
     /// @param[in] y is the vertical center of the circle.
     /// @param[in] radius defines the size of the circle.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t circle(loc_t x, loc_t y, dim_t radius, fill_t fillit = NOFILL);
 
@@ -1692,7 +1697,7 @@
     /// @param[in] radius2 defines the vertical radius of the ellipse.
     /// @param[in] color defines the foreground color.
     /// @param[in] fillit defines whether the circle is filled or not.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t ellipse(loc_t x, loc_t y, dim_t radius1, dim_t radius2, 
         color_t color, fill_t fillit = NOFILL);
@@ -1708,7 +1713,7 @@
     /// @param[in] radius2 defines the vertical radius of the ellipse.
     /// @param[in] color defines the foreground color.
     /// @param[in] fillit defines whether the circle is filled or not.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t fillellipse(loc_t x, loc_t y, dim_t radius1, dim_t radius2, 
         color_t color, fill_t fillit = FILL);
@@ -1722,20 +1727,20 @@
     /// @param[in] radius1 defines the horizontal radius of the ellipse.
     /// @param[in] radius2 defines the vertical radius of the ellipse.
     /// @param[in] fillit defines whether the circle is filled or not.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t ellipse(loc_t x, loc_t y, dim_t radius1, dim_t radius2, fill_t fillit = NOFILL);
     
     /// Control display power
     ///
     /// @param[in] on when set to true will turn on the display, when false it is turned off.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t Power(bool on);
 
     /// Reset the display controller via the Software Reset interface.
     ///
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t Reset(void);
     
@@ -1745,7 +1750,7 @@
     /// API can be used to set the brightness.
     /// 
     /// @param[in] brightness ranges from 0 (off) to 255 (full on)
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t Backlight_u8(unsigned char brightness);
     
@@ -1761,7 +1766,7 @@
     /// API can be used to set the brightness.
     /// 
     /// @param[in] brightness ranges from 0.0 (off) to 1.0 (full on)
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t Backlight(float brightness);
 
@@ -1808,10 +1813,10 @@
     /// class in order to prepare the hardware to accept the streaming
     /// data.
     ///
-    /// Following this command, a series of @see _putp() commands can
+    /// Following this command, a series of See @ref _putp() commands can
     /// be used to send individual pixels to the screen.
     ///
-    /// To conclude the graphics stream, @see _EndGraphicsStream should
+    /// To conclude the graphics stream, See @ref _EndGraphicsStream should
     /// be callled.
     ///
     /// @returns error code.
@@ -1821,7 +1826,7 @@
     /// Advanced method to put a single color pixel to the screen.
     ///
     /// This method may be called as many times as necessary after 
-    /// @see _StartGraphicsStream() is called, and it should be followed 
+    /// See @ref _StartGraphicsStream() is called, and it should be followed 
     /// by _EndGraphicsStream.
     ///
     /// @param[in] pixel is a color value to be put on the screen.
@@ -1865,7 +1870,7 @@
     ///     applications as a starting point.
     /// @param[in] Hz2 is an optional parameter and will set the read
     ///     speed independently of the write speed.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t frequency(unsigned long Hz = RA8875_DEFAULT_SPI_FREQ, unsigned long Hz2 = 0);
     
@@ -2000,7 +2005,7 @@
     // a touch, and if so, it then clears the sample counter so it doesn't get partial old
     // and partial new.
     
-    /// Touch State used by TouchPanelReadable. @see TouchCode_t.
+    /// Touch State used by TouchPanelReadable. See @ref TouchCode_t.
     TouchCode_t touchState;
 
     /// Touch Panel ticker
@@ -2058,7 +2063,7 @@
     /// @param[in] chipsel when true will select the peripheral, and when false
     ///     will deselect the chip. This is the logical selection, and
     ///     the pin selection is the invert of this.
-    /// @returns success/failure code. @see RetCode_t.
+    /// @returns success/failure code. See @ref RetCode_t.
     ///
     RetCode_t _select(bool chipsel);