Added SPI burst mode to spi 8 bit.

Dependents:   Bicycl_Computer_NUCLEO-F411RE Bicycl_Computer_NUCLEO-L476RG

Fork of UniGraphic by GraphicsDisplay

Added SPI burst mode to this graphics driver. If whoever wants this rolled in to repository let me know. I replaced _spi.write(); with fastWrite(); and clearRX();

SPI8.cpp

// need to re-create SPI firmware to access SPI handle
static SPI_HandleTypeDef SpiHandle;

void SPI8::fastWrite(int data) {
    
      SpiHandle.Instance = SPI1;
    // Check if data is transmitted
    while ((SpiHandle.Instance->SR & SPI_SR_TXE) == 0);
    SpiHandle.Instance->DR = data;
}
    
void SPI8::clearRX( void ) {
        SpiHandle.Instance = SPI1;
    //Check if the RX buffer is busy
    //While busy, keep checking
    while (SpiHandle.Instance->SR & SPI_SR_BSY){   
        // Check RX buffer readable
        while ((SpiHandle.Instance->SR & SPI_SR_RXNE) == 0);
        int dummy = SpiHandle.Instance->DR;
    }
}      
Committer:
trevieze
Date:
Fri Aug 04 19:47:21 2017 +0000
Revision:
36:0ced7cf0ec8c
Parent:
10:668cf78ff93a
Added Gimp Graphic Display Routine for Compass

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Geremia 0:75ec1b3cde17 1 /* mbed GraphicsDisplay Display Library Base Class
Geremia 0:75ec1b3cde17 2 * Copyright (c) 2007-2009 sford
Geremia 0:75ec1b3cde17 3 * Released under the MIT License: http://mbed.org/license/mit
Geremia 0:75ec1b3cde17 4 *
Geremia 0:75ec1b3cde17 5 * A library for providing a common base class for Graphics displays
Geremia 0:75ec1b3cde17 6 * To port a new display, derive from this class and implement
Geremia 0:75ec1b3cde17 7 * the constructor (setup the display), pixel (put a pixel
Geremia 0:75ec1b3cde17 8 * at a location), width and height functions. Everything else
Geremia 0:75ec1b3cde17 9 * (locate, printf, putc, cls, window, putp, fill, blit, blitbit)
Geremia 0:75ec1b3cde17 10 * will come for free. You can also provide a specialised implementation
Geremia 0:75ec1b3cde17 11 * of window and putp to speed up the results
Geremia 0:75ec1b3cde17 12 */
Geremia 0:75ec1b3cde17 13
Geremia 0:75ec1b3cde17 14 #ifndef MBED_GRAPHICSDISPLAY_H
Geremia 0:75ec1b3cde17 15 #define MBED_GRAPHICSDISPLAY_H
Geremia 0:75ec1b3cde17 16
Geremia 0:75ec1b3cde17 17 #include "TextDisplay.h"
Geremia 0:75ec1b3cde17 18 #include "Terminal6x8.h"
Geremia 0:75ec1b3cde17 19
Geremia 5:b222a9461d6b 20
Geremia 2:713844a55c4e 21
Geremia 2:713844a55c4e 22 /* some RGB color definitions */
Geremia 2:713844a55c4e 23 #define Black 0x0000 /* 0, 0, 0 */
Geremia 2:713844a55c4e 24 #define Navy 0x000F /* 0, 0, 128 */
Geremia 2:713844a55c4e 25 #define DarkGreen 0x03E0 /* 0, 128, 0 */
Geremia 2:713844a55c4e 26 #define DarkCyan 0x03EF /* 0, 128, 128 */
Geremia 2:713844a55c4e 27 #define Maroon 0x7800 /* 128, 0, 0 */
Geremia 2:713844a55c4e 28 #define Purple 0x780F /* 128, 0, 128 */
Geremia 2:713844a55c4e 29 #define Olive 0x7BE0 /* 128, 128, 0 */
Geremia 2:713844a55c4e 30 #define LightGrey 0xC618 /* 192, 192, 192 */
Geremia 2:713844a55c4e 31 #define DarkGrey 0x7BEF /* 128, 128, 128 */
Geremia 2:713844a55c4e 32 #define Blue 0x001F /* 0, 0, 255 */
Geremia 2:713844a55c4e 33 #define Green 0x07E0 /* 0, 255, 0 */
Geremia 2:713844a55c4e 34 #define Cyan 0x07FF /* 0, 255, 255 */
Geremia 2:713844a55c4e 35 #define Red 0xF800 /* 255, 0, 0 */
Geremia 2:713844a55c4e 36 #define Magenta 0xF81F /* 255, 0, 255 */
Geremia 2:713844a55c4e 37 #define Yellow 0xFFE0 /* 255, 255, 0 */
Geremia 2:713844a55c4e 38 #define White 0xFFFF /* 255, 255, 255 */
Geremia 2:713844a55c4e 39 #define Orange 0xFD20 /* 255, 165, 0 */
Geremia 2:713844a55c4e 40 #define GreenYellow 0xAFE5 /* 173, 255, 47 */
Geremia 2:713844a55c4e 41
Geremia 0:75ec1b3cde17 42 /** Bitmap
Geremia 0:75ec1b3cde17 43 */
Geremia 0:75ec1b3cde17 44 struct Bitmap_s{
Geremia 0:75ec1b3cde17 45 int xSize;
Geremia 0:75ec1b3cde17 46 int ySize;
Geremia 0:75ec1b3cde17 47 int Byte_in_Line;
Geremia 0:75ec1b3cde17 48 char* data;
Geremia 0:75ec1b3cde17 49 };
Geremia 0:75ec1b3cde17 50
Geremia 0:75ec1b3cde17 51 /** A common base class for Graphics displays
Geremia 0:75ec1b3cde17 52 */
Geremia 0:75ec1b3cde17 53 class GraphicsDisplay : public TextDisplay {
Geremia 0:75ec1b3cde17 54
Geremia 0:75ec1b3cde17 55 public:
Geremia 0:75ec1b3cde17 56
Geremia 0:75ec1b3cde17 57 /** Create a GraphicsDisplay interface
Geremia 0:75ec1b3cde17 58 * @param name The name used by the parent class to access the interface
Geremia 0:75ec1b3cde17 59 */
Geremia 0:75ec1b3cde17 60 GraphicsDisplay(const char* name);
Geremia 0:75ec1b3cde17 61
Geremia 0:75ec1b3cde17 62 ////// functions needing implementation in derived implementation class ///////////////////////////////////////
Geremia 0:75ec1b3cde17 63 ////// ---------------------------------------------------------------- ///////////////////////////////////////
Geremia 0:75ec1b3cde17 64
Geremia 0:75ec1b3cde17 65 /** Draw a pixel in the specified color.
Geremia 0:75ec1b3cde17 66 * @note this method must be supported in the derived class.
Geremia 0:75ec1b3cde17 67 * @param x is the horizontal offset to this pixel.
Geremia 0:75ec1b3cde17 68 * @param y is the vertical offset to this pixel.
Geremia 0:75ec1b3cde17 69 * @param color defines the color for the pixel.
Geremia 0:75ec1b3cde17 70 */
Geremia 0:75ec1b3cde17 71 virtual void pixel(int x, int y, unsigned short color) = 0;
Geremia 0:75ec1b3cde17 72
Geremia 0:75ec1b3cde17 73 /** Set the window, which controls where items are written to the screen.
Geremia 0:75ec1b3cde17 74 * When something hits the window width, it wraps back to the left side
Geremia 0:75ec1b3cde17 75 * and down a row. If the initial write is outside the window, it will
Geremia 0:75ec1b3cde17 76 * be captured into the window when it crosses a boundary.
Geremia 0:75ec1b3cde17 77 * @param x is the left edge in pixels.
Geremia 0:75ec1b3cde17 78 * @param y is the top edge in pixels.
Geremia 0:75ec1b3cde17 79 * @param w is the window width in pixels.
Geremia 0:75ec1b3cde17 80 * @param h is the window height in pixels.
Geremia 0:75ec1b3cde17 81 * @note this method must be overridden in a derived class.
Geremia 0:75ec1b3cde17 82 */
Geremia 0:75ec1b3cde17 83 virtual void window(int x, int y, int w, int h) = 0;
Geremia 0:75ec1b3cde17 84
Geremia 0:75ec1b3cde17 85 /** Push a single pixel into the window and increment position.
Geremia 0:75ec1b3cde17 86 * You may first call window() then push pixels in loop.
Geremia 0:75ec1b3cde17 87 * @param color is the pixel color.
Geremia 0:75ec1b3cde17 88 * @note this method must be overridden in a derived class.
Geremia 0:75ec1b3cde17 89 */
Geremia 0:75ec1b3cde17 90 virtual void window_pushpixel(unsigned short color) = 0;
Geremia 2:713844a55c4e 91
Geremia 2:713844a55c4e 92 /** Push some pixels of the same color into the window and increment position.
Geremia 2:713844a55c4e 93 * You must first call window() then push pixels.
Geremia 2:713844a55c4e 94 * @param color is the pixel color.
Geremia 2:713844a55c4e 95 * @param count: how many
Geremia 2:713844a55c4e 96 */
Geremia 2:713844a55c4e 97 virtual void window_pushpixel(unsigned short color, unsigned int count) = 0;
Geremia 2:713844a55c4e 98
Geremia 2:713844a55c4e 99 /** Push array of pixel colors into the window and increment position.
Geremia 2:713844a55c4e 100 * You must first call window() then push pixels.
Geremia 2:713844a55c4e 101 * @param color is the pixel color.
Geremia 2:713844a55c4e 102 */
Geremia 2:713844a55c4e 103 virtual void window_pushpixelbuf(unsigned short* color, unsigned int lenght) = 0;
Geremia 0:75ec1b3cde17 104
Geremia 0:75ec1b3cde17 105 /** If framebuffer is used, it needs to be sent to LCD from time to time
Geremia 0:75ec1b3cde17 106 @note this method must be overridden in a derived class.
Geremia 0:75ec1b3cde17 107 @note real function for LCD, dummy for TFT
Geremia 0:75ec1b3cde17 108 */
Geremia 0:75ec1b3cde17 109 virtual void copy_to_lcd() = 0;
Geremia 0:75ec1b3cde17 110
Geremia 0:75ec1b3cde17 111 /////// functions that come for free, but can be overwritten///////////////////////////////////////////////////
Geremia 0:75ec1b3cde17 112 /////// ----------------------------------------------------///////////////////////////////////////////////////
Geremia 0:75ec1b3cde17 113
Geremia 0:75ec1b3cde17 114 /** Set window to max possible size
Geremia 0:75ec1b3cde17 115 * May be overridden in a derived class.
Geremia 0:75ec1b3cde17 116 */
Geremia 0:75ec1b3cde17 117 virtual void WindowMax(void);
Geremia 0:75ec1b3cde17 118
Geremia 0:75ec1b3cde17 119 /** clear the entire screen
Geremia 0:75ec1b3cde17 120 * Basically it sets windomax then fill with background color
Geremia 0:75ec1b3cde17 121 * May be overridden in a derived class.
Geremia 0:75ec1b3cde17 122 */
Geremia 0:75ec1b3cde17 123 virtual void cls();
Geremia 0:75ec1b3cde17 124
Geremia 0:75ec1b3cde17 125 /** draw a circle
Geremia 0:75ec1b3cde17 126 *
Geremia 0:75ec1b3cde17 127 * @param x0,y0 center
Geremia 0:75ec1b3cde17 128 * @param r radius
Geremia 0:75ec1b3cde17 129 * @param color 16 bit color *
Geremia 0:75ec1b3cde17 130 *
Geremia 0:75ec1b3cde17 131 */
Geremia 0:75ec1b3cde17 132 virtual void circle(int x, int y, int r, unsigned short color);
Geremia 0:75ec1b3cde17 133
Geremia 0:75ec1b3cde17 134 /** draw a filled circle
Geremia 0:75ec1b3cde17 135 *
Geremia 0:75ec1b3cde17 136 * @param x0,y0 center
Geremia 0:75ec1b3cde17 137 * @param r radius
Geremia 0:75ec1b3cde17 138 * @param color 16 bit color *
Geremia 0:75ec1b3cde17 139 */
Geremia 0:75ec1b3cde17 140 virtual void fillcircle(int x, int y, int r, unsigned short color);
Geremia 0:75ec1b3cde17 141
Geremia 0:75ec1b3cde17 142
Geremia 0:75ec1b3cde17 143 /** draw a 1 pixel line
Geremia 0:75ec1b3cde17 144 *
Geremia 0:75ec1b3cde17 145 * @param x0,y0 start point
Geremia 0:75ec1b3cde17 146 * @param x1,y1 stop point
Geremia 0:75ec1b3cde17 147 * @param color 16 bit color
Geremia 0:75ec1b3cde17 148 *
Geremia 0:75ec1b3cde17 149 */
Geremia 0:75ec1b3cde17 150 virtual void line(int x0, int y0, int x1, int y1, unsigned short color);
Geremia 0:75ec1b3cde17 151
Geremia 0:75ec1b3cde17 152 /** draw a horizontal line
Geremia 0:75ec1b3cde17 153 *
Geremia 0:75ec1b3cde17 154 * @param x0 horizontal start
Geremia 0:75ec1b3cde17 155 * @param x1 horizontal stop
Geremia 0:75ec1b3cde17 156 * @param y vertical position
Geremia 0:75ec1b3cde17 157 * @param color 16 bit color
Geremia 0:75ec1b3cde17 158 *
Geremia 0:75ec1b3cde17 159 */
Geremia 0:75ec1b3cde17 160 void hline(int x0, int x1, int y, unsigned short color);
Geremia 0:75ec1b3cde17 161
Geremia 0:75ec1b3cde17 162 /** draw a vertical line
Geremia 0:75ec1b3cde17 163 *
Geremia 0:75ec1b3cde17 164 * @param x horizontal position
Geremia 0:75ec1b3cde17 165 * @param y0 vertical start
Geremia 0:75ec1b3cde17 166 * @param y1 vertical stop
Geremia 0:75ec1b3cde17 167 * @param color 16 bit color
Geremia 0:75ec1b3cde17 168 */
Geremia 0:75ec1b3cde17 169 void vline(int y0, int y1, int x, unsigned short color);
Geremia 0:75ec1b3cde17 170
Geremia 0:75ec1b3cde17 171 /** draw a rect
Geremia 0:75ec1b3cde17 172 *
Geremia 0:75ec1b3cde17 173 * @param x0,y0 top left corner
Geremia 0:75ec1b3cde17 174 * @param x1,y1 down right corner
Geremia 0:75ec1b3cde17 175 * @param color 16 bit color
Geremia 0:75ec1b3cde17 176 * *
Geremia 0:75ec1b3cde17 177 */
Geremia 0:75ec1b3cde17 178 virtual void rect(int x0, int y0, int x1, int y1, unsigned short color);
Geremia 0:75ec1b3cde17 179
Geremia 0:75ec1b3cde17 180 /** draw a filled rect
Geremia 0:75ec1b3cde17 181 *
Geremia 0:75ec1b3cde17 182 * @param x0,y0 top left corner
Geremia 0:75ec1b3cde17 183 * @param x1,y1 down right corner
Geremia 0:75ec1b3cde17 184 * @param color 16 bit color
Geremia 0:75ec1b3cde17 185 *
Geremia 0:75ec1b3cde17 186 */
Geremia 0:75ec1b3cde17 187 virtual void fillrect(int x0, int y0, int x1, int y1, unsigned short color);
Geremia 0:75ec1b3cde17 188
Geremia 0:75ec1b3cde17 189 /** setup cursor position for text
Geremia 0:75ec1b3cde17 190 *
Geremia 0:75ec1b3cde17 191 * @param x x-position (top left)
Geremia 0:75ec1b3cde17 192 * @param y y-position
Geremia 0:75ec1b3cde17 193 */
Geremia 0:75ec1b3cde17 194 virtual void locate(int x, int y);
Geremia 0:75ec1b3cde17 195
Geremia 0:75ec1b3cde17 196 /** put a char on the screen
Geremia 0:75ec1b3cde17 197 *
Geremia 0:75ec1b3cde17 198 * @param value char to print
Geremia 0:75ec1b3cde17 199 * @returns printed char
Geremia 0:75ec1b3cde17 200 *
Geremia 0:75ec1b3cde17 201 */
Geremia 0:75ec1b3cde17 202 virtual int _putc(int value);
Geremia 0:75ec1b3cde17 203
Geremia 0:75ec1b3cde17 204 /** draw a character on given position out of the active font to the TFT
Geremia 0:75ec1b3cde17 205 *
Geremia 0:75ec1b3cde17 206 * @param x x-position of char (top left)
Geremia 0:75ec1b3cde17 207 * @param y y-position
Geremia 0:75ec1b3cde17 208 * @param c char to print
Geremia 0:75ec1b3cde17 209 *
Geremia 0:75ec1b3cde17 210 */
Geremia 0:75ec1b3cde17 211 virtual void character(int x, int y, int c);
Geremia 0:75ec1b3cde17 212
Geremia 0:75ec1b3cde17 213 /** paint a bitmap on the TFT
Geremia 0:75ec1b3cde17 214 *
Geremia 0:75ec1b3cde17 215 * @param x,y : upper left corner
Geremia 0:75ec1b3cde17 216 * @param w width of bitmap
Geremia 0:75ec1b3cde17 217 * @param h high of bitmap
Geremia 0:75ec1b3cde17 218 * @param *bitmap pointer to the bitmap data
Geremia 0:75ec1b3cde17 219 *
Geremia 0:75ec1b3cde17 220 * bitmap format: 16 bit R5 G6 B5
Geremia 0:75ec1b3cde17 221 *
Geremia 0:75ec1b3cde17 222 * use Gimp to create / load , save as BMP, option 16 bit R5 G6 B5
Geremia 0:75ec1b3cde17 223 * use winhex to load this file and mark data stating at offset 0x46 to end
Geremia 0:75ec1b3cde17 224 * use edit -> copy block -> C Source to export C array
Geremia 0:75ec1b3cde17 225 * paste this array into your program
Geremia 0:75ec1b3cde17 226 *
Geremia 0:75ec1b3cde17 227 * define the array as static const unsigned char to put it into flash memory
Geremia 0:75ec1b3cde17 228 * cast the pointer to (unsigned char *) :
Geremia 0:75ec1b3cde17 229 * tft.Bitmap(10,40,309,50,(unsigned char *)scala);
Geremia 0:75ec1b3cde17 230 */
Geremia 0:75ec1b3cde17 231 void Bitmap(int x, int y, int w, int h,unsigned char *bitmap);
Geremia 0:75ec1b3cde17 232
Geremia 0:75ec1b3cde17 233 /** paint monochrome bitmap to screen
Geremia 0:75ec1b3cde17 234 *
Geremia 0:75ec1b3cde17 235 * @param bm Bitmap in flash
Geremia 0:75ec1b3cde17 236 * @param x x start
Geremia 0:75ec1b3cde17 237 * @param y y start
Geremia 0:75ec1b3cde17 238 *
Geremia 0:75ec1b3cde17 239 */
Geremia 0:75ec1b3cde17 240 void Bitmap_BW(Bitmap_s bm, int x, int y);
Geremia 0:75ec1b3cde17 241
Geremia 0:75ec1b3cde17 242 /** paint a 16 bit BMP from filesytem on the TFT (slow)
Geremia 0:75ec1b3cde17 243 *
Geremia 0:75ec1b3cde17 244 * @param x,y : position of upper left corner
Geremia 0:75ec1b3cde17 245 * @param *Name_BMP name of the BMP file with drive: "/local/test.bmp"
Geremia 0:75ec1b3cde17 246 *
Geremia 0:75ec1b3cde17 247 * @returns 1 if bmp file was found and painted
Geremia 0:75ec1b3cde17 248 * @returns 0 if bmp file was found not found
Geremia 0:75ec1b3cde17 249 * @returns -1 if file is no bmp
Geremia 0:75ec1b3cde17 250 * @returns -2 if bmp file is no 16 bit bmp
Geremia 0:75ec1b3cde17 251 * @returns -3 if bmp file is to big for screen
Geremia 0:75ec1b3cde17 252 * @returns -4 if buffer malloc go wrong
Geremia 0:75ec1b3cde17 253 *
Geremia 0:75ec1b3cde17 254 * bitmap format: 16 bit R5 G6 B5
Geremia 0:75ec1b3cde17 255 *
Geremia 0:75ec1b3cde17 256 * use Gimp to create / load , save as BMP, option 16 bit R5 G6 B5
Geremia 0:75ec1b3cde17 257 * copy to internal file system or SD card
Geremia 0:75ec1b3cde17 258 */
Geremia 0:75ec1b3cde17 259
trevieze 36:0ced7cf0ec8c 260 int BMP_16(int x, int y, const char *charName_BMP);
Geremia 0:75ec1b3cde17 261
Geremia 0:75ec1b3cde17 262
Geremia 0:75ec1b3cde17 263 /** select the font to use
Geremia 0:75ec1b3cde17 264 *
Geremia 0:75ec1b3cde17 265 * @param f pointer to font array
Geremia 0:75ec1b3cde17 266 * @param firstascii first ascii code present in font array, default 32 (space)
Geremia 0:75ec1b3cde17 267 * @param lastascii last ascii code present in font array, default 127 (DEL)
Geremia 3:48f3282c2be8 268 * @param proportional enable/disable variable font width (default enabled)
Geremia 0:75ec1b3cde17 269 *
Geremia 0:75ec1b3cde17 270 * font array can created with GLCD Font Creator from http://www.mikroe.com
Geremia 0:75ec1b3cde17 271 * you have to add 4 parameter at the beginning of the font array to use:
Geremia 0:75ec1b3cde17 272 * - the number of byte / char (not used in this revision, set to whatever)
Geremia 0:75ec1b3cde17 273 * - the vertial size in pixel
Geremia 0:75ec1b3cde17 274 * - the horizontal size in pixel
Geremia 0:75ec1b3cde17 275 * - the number of byte per vertical line (not used in this revision, set to whatever)
Geremia 0:75ec1b3cde17 276 * you also have to change the array to cont unsigned char[] and __align(2)
Geremia 0:75ec1b3cde17 277 *
Geremia 0:75ec1b3cde17 278 */
Geremia 3:48f3282c2be8 279 void set_font(unsigned char* f, unsigned char firstascii=32, unsigned char lastascii=127, bool proportional = true);
Geremia 0:75ec1b3cde17 280
Geremia 0:75ec1b3cde17 281 /** Get the number of columns based on the currently active font.
Geremia 0:75ec1b3cde17 282 * @returns number of columns.
Geremia 0:75ec1b3cde17 283 * @note this method may be overridden in a derived class.
Geremia 0:75ec1b3cde17 284 */
Geremia 0:75ec1b3cde17 285 virtual int columns();
Geremia 0:75ec1b3cde17 286
Geremia 0:75ec1b3cde17 287 /** Get the number of rows based on the currently active font.
Geremia 0:75ec1b3cde17 288 * @returns number of rows.
Geremia 0:75ec1b3cde17 289 * @note this method may be overridden in a derived class.
Geremia 0:75ec1b3cde17 290 */
Geremia 0:75ec1b3cde17 291 virtual int rows();
Geremia 0:75ec1b3cde17 292
Geremia 0:75ec1b3cde17 293 /** get the current oriented screen width in pixels
Geremia 0:75ec1b3cde17 294 * @returns screen width in pixels.
Geremia 0:75ec1b3cde17 295 */
Geremia 0:75ec1b3cde17 296 int width();
Geremia 0:75ec1b3cde17 297
Geremia 0:75ec1b3cde17 298 /** get the current oriented screen height in pixels
Geremia 0:75ec1b3cde17 299 * @returns screen height in pixels.
Geremia 0:75ec1b3cde17 300 */
Geremia 0:75ec1b3cde17 301 int height();
Geremia 0:75ec1b3cde17 302
Geremia 0:75ec1b3cde17 303 /** set the current oriented screen width in pixels
Geremia 0:75ec1b3cde17 304 * @param width screen width in pixels.
Geremia 0:75ec1b3cde17 305 */
Geremia 0:75ec1b3cde17 306 void set_width(int width);
Geremia 0:75ec1b3cde17 307
Geremia 0:75ec1b3cde17 308 /** set the current oriented screen height in pixels
Geremia 0:75ec1b3cde17 309 * @param height screen height in pixels.
Geremia 0:75ec1b3cde17 310 */
Geremia 0:75ec1b3cde17 311 void set_height(int height);
Geremia 0:75ec1b3cde17 312
Geremia 2:713844a55c4e 313 /** setup auto update of screen
Geremia 2:713844a55c4e 314 *
Geremia 2:713844a55c4e 315 * @param up 1 = on , 0 = off
Geremia 2:713844a55c4e 316 * if switched off the program has to call copy_to_lcd()
Geremia 2:713844a55c4e 317 * to update screen from framebuffer
Geremia 2:713844a55c4e 318 */
Geremia 2:713844a55c4e 319 void set_auto_up(bool up);
Geremia 2:713844a55c4e 320
Geremia 2:713844a55c4e 321 /** get status of the auto update function
Geremia 2:713844a55c4e 322 *
Geremia 2:713844a55c4e 323 * @returns if auto update is on
Geremia 2:713844a55c4e 324 */
Geremia 2:713844a55c4e 325 bool get_auto_up(void);
Geremia 0:75ec1b3cde17 326
trevieze 36:0ced7cf0ec8c 327 void drawXBitmap(int16_t x, int16_t y,const uint8_t *bitmap, int16_t w, int16_t h,uint16_t color);
Geremia 0:75ec1b3cde17 328
Geremia 0:75ec1b3cde17 329
Geremia 0:75ec1b3cde17 330 private:
Geremia 0:75ec1b3cde17 331
Geremia 0:75ec1b3cde17 332 unsigned char* font;
Geremia 0:75ec1b3cde17 333 // display width and height related to current orientation
Geremia 0:75ec1b3cde17 334 int oriented_width;
Geremia 0:75ec1b3cde17 335 int oriented_height;
Geremia 0:75ec1b3cde17 336
Geremia 0:75ec1b3cde17 337 // text char location
Geremia 0:75ec1b3cde17 338 int char_x;
Geremia 0:75ec1b3cde17 339 int char_y;
Geremia 0:75ec1b3cde17 340
Geremia 0:75ec1b3cde17 341 int fontoffset;// bytes / char (short)
Geremia 0:75ec1b3cde17 342 int fonthor; // hor size of font (char)
Geremia 0:75ec1b3cde17 343 int fontvert; // ver size of font (char)
Geremia 0:75ec1b3cde17 344 int fontbpl; // bytes per line (char)
Geremia 0:75ec1b3cde17 345 unsigned char firstch; // first ascii code present in font array (usually 32)
Geremia 0:75ec1b3cde17 346 unsigned char lastch; // last ascii code present in font array (usually 127)
Geremia 3:48f3282c2be8 347 bool auto_up; // autoupdate flag for LCD
Geremia 3:48f3282c2be8 348 bool fontprop;
Geremia 0:75ec1b3cde17 349
Geremia 0:75ec1b3cde17 350
Geremia 0:75ec1b3cde17 351 };
Geremia 0:75ec1b3cde17 352
Geremia 0:75ec1b3cde17 353 #endif