Fork of KS0108 by
KS0108.h@2:d2d7778bbbf2, 2014-04-14 (annotated)
- Committer:
- nhahn
- Date:
- Mon Apr 14 18:36:58 2014 +0000
- Revision:
- 2:d2d7778bbbf2
- Parent:
- 0:14a7c22dfbe8
added some fonts
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kagelump | 0:14a7c22dfbe8 | 1 | #ifndef KS0108_H |
kagelump | 0:14a7c22dfbe8 | 2 | #define KS0108_H |
kagelump | 0:14a7c22dfbe8 | 3 | |
kagelump | 0:14a7c22dfbe8 | 4 | #define VERSION 2.0 |
kagelump | 0:14a7c22dfbe8 | 5 | |
kagelump | 0:14a7c22dfbe8 | 6 | #include <mbed.h> |
kagelump | 0:14a7c22dfbe8 | 7 | #include "SystemFont5x7.h" |
kagelump | 0:14a7c22dfbe8 | 8 | |
kagelump | 0:14a7c22dfbe8 | 9 | /************************************************************************************/ |
kagelump | 0:14a7c22dfbe8 | 10 | // Commands |
kagelump | 0:14a7c22dfbe8 | 11 | #define LCD_ON 0x3F |
kagelump | 0:14a7c22dfbe8 | 12 | #define LCD_OFF 0x3E |
kagelump | 0:14a7c22dfbe8 | 13 | #define LCD_SET_ADD 0x40 |
kagelump | 0:14a7c22dfbe8 | 14 | #define LCD_SET_PAGE 0xB8 |
kagelump | 0:14a7c22dfbe8 | 15 | #define LCD_DISP_START 0xC0 |
kagelump | 0:14a7c22dfbe8 | 16 | |
kagelump | 0:14a7c22dfbe8 | 17 | //Controller directives |
kagelump | 0:14a7c22dfbe8 | 18 | #define LEFT 0 |
kagelump | 0:14a7c22dfbe8 | 19 | #define RIGHT 1 |
kagelump | 0:14a7c22dfbe8 | 20 | #define BOTH 3 |
kagelump | 0:14a7c22dfbe8 | 21 | #define NONE 4 |
kagelump | 0:14a7c22dfbe8 | 22 | |
kagelump | 0:14a7c22dfbe8 | 23 | // Colors |
kagelump | 0:14a7c22dfbe8 | 24 | #define BLACK 0xFF |
kagelump | 0:14a7c22dfbe8 | 25 | #define WHITE 0x00 |
kagelump | 0:14a7c22dfbe8 | 26 | |
kagelump | 0:14a7c22dfbe8 | 27 | //Screen dimensions |
kagelump | 0:14a7c22dfbe8 | 28 | #define SCREEN_HEIGHT 64 |
kagelump | 0:14a7c22dfbe8 | 29 | #define SCREEN_WIDTH 128 |
kagelump | 0:14a7c22dfbe8 | 30 | #define CHIP_WIDTH 64 |
kagelump | 0:14a7c22dfbe8 | 31 | |
kagelump | 0:14a7c22dfbe8 | 32 | /***********************************************************************************/ |
kagelump | 0:14a7c22dfbe8 | 33 | //helper functions |
kagelump | 0:14a7c22dfbe8 | 34 | |
kagelump | 0:14a7c22dfbe8 | 35 | #define absDiff(x,y) ((x>y) ? (x-y) : (y-x)) |
kagelump | 0:14a7c22dfbe8 | 36 | #define swap(a,b) \ |
kagelump | 0:14a7c22dfbe8 | 37 | do\ |
kagelump | 0:14a7c22dfbe8 | 38 | {\ |
kagelump | 0:14a7c22dfbe8 | 39 | uint8_t t;\ |
kagelump | 0:14a7c22dfbe8 | 40 | t=a;\ |
kagelump | 0:14a7c22dfbe8 | 41 | a=b;\ |
kagelump | 0:14a7c22dfbe8 | 42 | b=t;\ |
kagelump | 0:14a7c22dfbe8 | 43 | } while(0) |
kagelump | 0:14a7c22dfbe8 | 44 | |
kagelump | 0:14a7c22dfbe8 | 45 | /**************************************************************************************/ |
kagelump | 0:14a7c22dfbe8 | 46 | |
kagelump | 0:14a7c22dfbe8 | 47 | // Font Indices |
kagelump | 0:14a7c22dfbe8 | 48 | #define FONT_LENGTH 0 |
kagelump | 0:14a7c22dfbe8 | 49 | #define FONT_FIXED_WIDTH 2 |
kagelump | 0:14a7c22dfbe8 | 50 | #define FONT_HEIGHT 3 |
kagelump | 0:14a7c22dfbe8 | 51 | #define FONT_FIRST_CHAR 4 |
kagelump | 0:14a7c22dfbe8 | 52 | #define FONT_CHAR_COUNT 5 |
kagelump | 0:14a7c22dfbe8 | 53 | #define FONT_WIDTH_TABLE 6 |
kagelump | 0:14a7c22dfbe8 | 54 | |
kagelump | 0:14a7c22dfbe8 | 55 | |
kagelump | 0:14a7c22dfbe8 | 56 | /*************************Callback function definietion for fonts *********************/ |
kagelump | 0:14a7c22dfbe8 | 57 | typedef unsigned int (*FontCallback)(unsigned int*); |
kagelump | 0:14a7c22dfbe8 | 58 | |
kagelump | 0:14a7c22dfbe8 | 59 | /*************************Callback function for reading font array*********************/ |
kagelump | 0:14a7c22dfbe8 | 60 | static unsigned int ReadData(unsigned int* ptr) { |
kagelump | 0:14a7c22dfbe8 | 61 | return *ptr; |
kagelump | 0:14a7c22dfbe8 | 62 | } |
kagelump | 0:14a7c22dfbe8 | 63 | |
kagelump | 0:14a7c22dfbe8 | 64 | /*************************************************************************************/ |
kagelump | 0:14a7c22dfbe8 | 65 | #define MAX_IMG_SIZE 128*64 |
kagelump | 0:14a7c22dfbe8 | 66 | |
kagelump | 0:14a7c22dfbe8 | 67 | typedef struct { |
kagelump | 0:14a7c22dfbe8 | 68 | unsigned int imgWidth; |
kagelump | 0:14a7c22dfbe8 | 69 | unsigned int imgHeight; |
kagelump | 0:14a7c22dfbe8 | 70 | unsigned char imgarray[MAX_IMG_SIZE]; |
kagelump | 0:14a7c22dfbe8 | 71 | }Image; |
kagelump | 0:14a7c22dfbe8 | 72 | |
kagelump | 0:14a7c22dfbe8 | 73 | |
kagelump | 0:14a7c22dfbe8 | 74 | typedef struct { |
kagelump | 0:14a7c22dfbe8 | 75 | unsigned int x; |
kagelump | 0:14a7c22dfbe8 | 76 | unsigned int y; |
kagelump | 0:14a7c22dfbe8 | 77 | unsigned int page; |
kagelump | 0:14a7c22dfbe8 | 78 | } LCDCoord; |
kagelump | 0:14a7c22dfbe8 | 79 | |
kagelump | 0:14a7c22dfbe8 | 80 | |
kagelump | 0:14a7c22dfbe8 | 81 | /****************************************************************************************/ |
kagelump | 0:14a7c22dfbe8 | 82 | |
kagelump | 0:14a7c22dfbe8 | 83 | |
kagelump | 0:14a7c22dfbe8 | 84 | |
kagelump | 0:14a7c22dfbe8 | 85 | class KS0108 { |
kagelump | 0:14a7c22dfbe8 | 86 | public: |
kagelump | 0:14a7c22dfbe8 | 87 | |
kagelump | 0:14a7c22dfbe8 | 88 | /** |
kagelump | 0:14a7c22dfbe8 | 89 | *@brief Constructor, initializes the lcd on the respective pins. |
kagelump | 0:14a7c22dfbe8 | 90 | *@param control pins RST,DI,RW,E,CS2,CS1 |
kagelump | 0:14a7c22dfbe8 | 91 | *@param databus DB0-DB7 data pins |
kagelump | 0:14a7c22dfbe8 | 92 | *@return none |
kagelump | 0:14a7c22dfbe8 | 93 | */ |
kagelump | 0:14a7c22dfbe8 | 94 | |
kagelump | 0:14a7c22dfbe8 | 95 | KS0108 (PinName _RST,PinName _DI, PinName _RW, PinName _E, PinName _CS1, PinName _CS2, PinName DB0, PinName DB1, PinName DB2, PinName DB3, PinName DB4, PinName DB5, PinName DB6, PinName DB7); |
kagelump | 0:14a7c22dfbe8 | 96 | |
kagelump | 0:14a7c22dfbe8 | 97 | /** |
kagelump | 0:14a7c22dfbe8 | 98 | *@brief Write instruction to the specific controller. |
kagelump | 0:14a7c22dfbe8 | 99 | *@param Command command to send to the controller |
kagelump | 0:14a7c22dfbe8 | 100 | *@param side controller side can be LEFT or RIGHT |
kagelump | 0:14a7c22dfbe8 | 101 | *@return none |
kagelump | 0:14a7c22dfbe8 | 102 | * |
kagelump | 0:14a7c22dfbe8 | 103 | */ |
kagelump | 0:14a7c22dfbe8 | 104 | void WriteInstruction(unsigned int Command,unsigned int side); |
kagelump | 0:14a7c22dfbe8 | 105 | |
kagelump | 0:14a7c22dfbe8 | 106 | /** |
kagelump | 0:14a7c22dfbe8 | 107 | *@brief Write data byte to the controller. |
kagelump | 0:14a7c22dfbe8 | 108 | *@param data data send to the controller chip |
kagelump | 0:14a7c22dfbe8 | 109 | *@param side selected controller can be LEFT or RIGHT |
kagelump | 0:14a7c22dfbe8 | 110 | *@return none |
kagelump | 0:14a7c22dfbe8 | 111 | * |
kagelump | 0:14a7c22dfbe8 | 112 | */ |
kagelump | 0:14a7c22dfbe8 | 113 | void WriteData(unsigned int data ,unsigned char side); |
kagelump | 0:14a7c22dfbe8 | 114 | |
kagelump | 0:14a7c22dfbe8 | 115 | |
kagelump | 0:14a7c22dfbe8 | 116 | /** |
kagelump | 0:14a7c22dfbe8 | 117 | *@brief Write data byte to the controller (overloaded function). |
kagelump | 0:14a7c22dfbe8 | 118 | * |
kagelump | 0:14a7c22dfbe8 | 119 | *@param data data send to the controller chip |
kagelump | 0:14a7c22dfbe8 | 120 | *@return none |
kagelump | 0:14a7c22dfbe8 | 121 | */ |
kagelump | 0:14a7c22dfbe8 | 122 | void WriteData(unsigned int data); |
kagelump | 0:14a7c22dfbe8 | 123 | |
kagelump | 0:14a7c22dfbe8 | 124 | /** |
kagelump | 0:14a7c22dfbe8 | 125 | *@brief Write data byte to the screen on specific page and column |
kagelump | 0:14a7c22dfbe8 | 126 | *@param page page varies from 0-7 for each side |
kagelump | 0:14a7c22dfbe8 | 127 | *@param col col varies from 0-64 for each side |
kagelump | 0:14a7c22dfbe8 | 128 | *@param data info to be written on given coordinates |
kagelump | 0:14a7c22dfbe8 | 129 | *@return none |
kagelump | 0:14a7c22dfbe8 | 130 | * |
kagelump | 0:14a7c22dfbe8 | 131 | */ |
kagelump | 0:14a7c22dfbe8 | 132 | void WriteDataColPag(unsigned int page, unsigned int col, unsigned int data); |
kagelump | 0:14a7c22dfbe8 | 133 | |
kagelump | 0:14a7c22dfbe8 | 134 | /** |
kagelump | 0:14a7c22dfbe8 | 135 | *@brief Read data from display |
kagelump | 0:14a7c22dfbe8 | 136 | *@param none |
kagelump | 0:14a7c22dfbe8 | 137 | *@return none |
kagelump | 0:14a7c22dfbe8 | 138 | * |
kagelump | 0:14a7c22dfbe8 | 139 | */ |
kagelump | 0:14a7c22dfbe8 | 140 | unsigned int ReadData(); |
kagelump | 0:14a7c22dfbe8 | 141 | |
kagelump | 0:14a7c22dfbe8 | 142 | /** |
kagelump | 0:14a7c22dfbe8 | 143 | *@brief Read status of display , and check if it's busy |
kagelump | 0:14a7c22dfbe8 | 144 | *@param none |
kagelump | 0:14a7c22dfbe8 | 145 | *@return status status of display |
kagelump | 0:14a7c22dfbe8 | 146 | * |
kagelump | 0:14a7c22dfbe8 | 147 | */ |
kagelump | 0:14a7c22dfbe8 | 148 | unsigned int ReadStatus(); |
kagelump | 0:14a7c22dfbe8 | 149 | |
kagelump | 0:14a7c22dfbe8 | 150 | /** |
kagelump | 0:14a7c22dfbe8 | 151 | *@brief Select controller chip |
kagelump | 0:14a7c22dfbe8 | 152 | * |
kagelump | 0:14a7c22dfbe8 | 153 | *@param side controller side can be LEFT or RIGHT |
kagelump | 0:14a7c22dfbe8 | 154 | *@return none |
kagelump | 0:14a7c22dfbe8 | 155 | * |
kagelump | 0:14a7c22dfbe8 | 156 | */ |
kagelump | 0:14a7c22dfbe8 | 157 | void SelectSide(unsigned char side); |
kagelump | 0:14a7c22dfbe8 | 158 | |
kagelump | 0:14a7c22dfbe8 | 159 | |
kagelump | 0:14a7c22dfbe8 | 160 | /** |
kagelump | 0:14a7c22dfbe8 | 161 | *@brief Set cursor to specified coordinates |
kagelump | 0:14a7c22dfbe8 | 162 | * |
kagelump | 0:14a7c22dfbe8 | 163 | *@param x row |
kagelump | 0:14a7c22dfbe8 | 164 | *@param y column |
kagelump | 0:14a7c22dfbe8 | 165 | *@return none |
kagelump | 0:14a7c22dfbe8 | 166 | */ |
kagelump | 0:14a7c22dfbe8 | 167 | void GotoXY(unsigned int x, unsigned int y); |
kagelump | 0:14a7c22dfbe8 | 168 | |
kagelump | 0:14a7c22dfbe8 | 169 | |
kagelump | 0:14a7c22dfbe8 | 170 | /** |
kagelump | 0:14a7c22dfbe8 | 171 | *@brief Clears display |
kagelump | 0:14a7c22dfbe8 | 172 | * |
kagelump | 0:14a7c22dfbe8 | 173 | *@param none |
kagelump | 0:14a7c22dfbe8 | 174 | *@return none |
kagelump | 0:14a7c22dfbe8 | 175 | * |
kagelump | 0:14a7c22dfbe8 | 176 | */ |
kagelump | 0:14a7c22dfbe8 | 177 | void ClearScreen(); |
kagelump | 0:14a7c22dfbe8 | 178 | |
kagelump | 0:14a7c22dfbe8 | 179 | |
kagelump | 0:14a7c22dfbe8 | 180 | /** |
kagelump | 0:14a7c22dfbe8 | 181 | *@brief Turn on display |
kagelump | 0:14a7c22dfbe8 | 182 | * |
kagelump | 0:14a7c22dfbe8 | 183 | *@param none |
kagelump | 0:14a7c22dfbe8 | 184 | *@return none |
kagelump | 0:14a7c22dfbe8 | 185 | * |
kagelump | 0:14a7c22dfbe8 | 186 | */ |
kagelump | 0:14a7c22dfbe8 | 187 | void TurnOn(); |
kagelump | 0:14a7c22dfbe8 | 188 | |
kagelump | 0:14a7c22dfbe8 | 189 | |
kagelump | 0:14a7c22dfbe8 | 190 | /** |
kagelump | 0:14a7c22dfbe8 | 191 | *@brief Turn Off display |
kagelump | 0:14a7c22dfbe8 | 192 | * |
kagelump | 0:14a7c22dfbe8 | 193 | *@param none |
kagelump | 0:14a7c22dfbe8 | 194 | *@return none |
kagelump | 0:14a7c22dfbe8 | 195 | * |
kagelump | 0:14a7c22dfbe8 | 196 | */ |
kagelump | 0:14a7c22dfbe8 | 197 | void TurnOff(); |
kagelump | 0:14a7c22dfbe8 | 198 | |
kagelump | 0:14a7c22dfbe8 | 199 | /*******************************Graphic functions************************************************/ |
kagelump | 0:14a7c22dfbe8 | 200 | |
kagelump | 0:14a7c22dfbe8 | 201 | /** |
kagelump | 0:14a7c22dfbe8 | 202 | *@brief Set pixel to specific location on the screen. |
kagelump | 0:14a7c22dfbe8 | 203 | *@param x coordinate varies from 0-128 |
kagelump | 0:14a7c22dfbe8 | 204 | *@param y col varies from 0-64 |
kagelump | 0:14a7c22dfbe8 | 205 | *@param color color of pixel, can be BLACK or WHITE |
kagelump | 0:14a7c22dfbe8 | 206 | *@return none |
kagelump | 0:14a7c22dfbe8 | 207 | * |
kagelump | 0:14a7c22dfbe8 | 208 | */ |
kagelump | 0:14a7c22dfbe8 | 209 | void SetPixel( unsigned int x, unsigned int y, unsigned int color); |
kagelump | 0:14a7c22dfbe8 | 210 | |
kagelump | 0:14a7c22dfbe8 | 211 | |
kagelump | 0:14a7c22dfbe8 | 212 | /** |
kagelump | 0:14a7c22dfbe8 | 213 | *@brief Draws a line from x1,y1 to x2,y1 |
kagelump | 0:14a7c22dfbe8 | 214 | *@param Xaxis1 x coordinate of one side |
kagelump | 0:14a7c22dfbe8 | 215 | *@param Xaxis2 x coordinate of one side |
kagelump | 0:14a7c22dfbe8 | 216 | *@param Yaxis y coordinate both points |
kagelump | 0:14a7c22dfbe8 | 217 | *@param color can be BLACK or WHITE |
kagelump | 0:14a7c22dfbe8 | 218 | *@return none |
kagelump | 0:14a7c22dfbe8 | 219 | * |
kagelump | 0:14a7c22dfbe8 | 220 | */ |
kagelump | 0:14a7c22dfbe8 | 221 | void HLine(unsigned int Xaxis1, unsigned int Xaxis2 ,unsigned int Yaxis,unsigned int color); |
kagelump | 0:14a7c22dfbe8 | 222 | |
kagelump | 0:14a7c22dfbe8 | 223 | /** |
kagelump | 0:14a7c22dfbe8 | 224 | *@brief Draw a horizontal line |
kagelump | 0:14a7c22dfbe8 | 225 | *@param Xaxis1 |
kagelump | 0:14a7c22dfbe8 | 226 | *@param Xaxis2 |
kagelump | 0:14a7c22dfbe8 | 227 | *@param width |
kagelump | 0:14a7c22dfbe8 | 228 | *@param color can be BLACK or WHITE |
kagelump | 0:14a7c22dfbe8 | 229 | *@return none |
kagelump | 0:14a7c22dfbe8 | 230 | * |
kagelump | 0:14a7c22dfbe8 | 231 | */ |
kagelump | 0:14a7c22dfbe8 | 232 | void HLineShort(unsigned int Xaxis, unsigned int Yaxis,unsigned int width ,unsigned int color); |
kagelump | 0:14a7c22dfbe8 | 233 | |
kagelump | 0:14a7c22dfbe8 | 234 | /** |
kagelump | 0:14a7c22dfbe8 | 235 | *@brief Draws a vertical line |
kagelump | 0:14a7c22dfbe8 | 236 | *@param Xaxis |
kagelump | 0:14a7c22dfbe8 | 237 | *@param Yaxis1 |
kagelump | 0:14a7c22dfbe8 | 238 | *@param Yaxis2 |
kagelump | 0:14a7c22dfbe8 | 239 | *@param color can be BLACK or WHITE |
kagelump | 0:14a7c22dfbe8 | 240 | *@return none |
kagelump | 0:14a7c22dfbe8 | 241 | * |
kagelump | 0:14a7c22dfbe8 | 242 | */ |
kagelump | 0:14a7c22dfbe8 | 243 | void VLine(unsigned int Xaxis, unsigned int Yaxis1 ,unsigned int Yaxis2,unsigned int color); |
kagelump | 0:14a7c22dfbe8 | 244 | |
kagelump | 0:14a7c22dfbe8 | 245 | /** |
kagelump | 0:14a7c22dfbe8 | 246 | *@brief Draw a vertical line of a given width starting from X, Y |
kagelump | 0:14a7c22dfbe8 | 247 | *@param Xaxis |
kagelump | 0:14a7c22dfbe8 | 248 | *@param Yaxis |
kagelump | 0:14a7c22dfbe8 | 249 | *@param height Height of line |
kagelump | 0:14a7c22dfbe8 | 250 | *@param color can be BLACK or WHITE |
kagelump | 0:14a7c22dfbe8 | 251 | *@return none |
kagelump | 0:14a7c22dfbe8 | 252 | * |
kagelump | 0:14a7c22dfbe8 | 253 | */ |
kagelump | 0:14a7c22dfbe8 | 254 | void VLineShort(unsigned int Xaxis,unsigned int Yaxis, unsigned int height ,unsigned int color); |
kagelump | 0:14a7c22dfbe8 | 255 | |
kagelump | 0:14a7c22dfbe8 | 256 | |
kagelump | 0:14a7c22dfbe8 | 257 | /** |
kagelump | 0:14a7c22dfbe8 | 258 | *@brief Draws a line from x1,y1 to x2,y2. |
kagelump | 0:14a7c22dfbe8 | 259 | *@param x1 x coordinate of one side |
kagelump | 0:14a7c22dfbe8 | 260 | *@param y1 y coordinate of one side |
kagelump | 0:14a7c22dfbe8 | 261 | *@param x2 x coordinate of other side |
kagelump | 0:14a7c22dfbe8 | 262 | *@param y2 y coordinate of other side |
kagelump | 0:14a7c22dfbe8 | 263 | *@param color can be BLACK or WHITE |
kagelump | 0:14a7c22dfbe8 | 264 | *@return none |
kagelump | 0:14a7c22dfbe8 | 265 | * |
kagelump | 0:14a7c22dfbe8 | 266 | */ |
kagelump | 0:14a7c22dfbe8 | 267 | void Line(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2, unsigned int color); |
kagelump | 0:14a7c22dfbe8 | 268 | |
kagelump | 0:14a7c22dfbe8 | 269 | |
kagelump | 0:14a7c22dfbe8 | 270 | /** |
kagelump | 0:14a7c22dfbe8 | 271 | *@brief Draws a slanty line from x1,y1 to x2,y2 |
kagelump | 0:14a7c22dfbe8 | 272 | *@param lX1 x coordinate of one side |
kagelump | 0:14a7c22dfbe8 | 273 | *@param lY1 y coordinate of one side |
kagelump | 0:14a7c22dfbe8 | 274 | *@param lX2 x coordinate of other side |
kagelump | 0:14a7c22dfbe8 | 275 | *@param lY2 y coordinate of other side |
kagelump | 0:14a7c22dfbe8 | 276 | *@param color can be BLACK or WHITE |
kagelump | 0:14a7c22dfbe8 | 277 | *@return none |
kagelump | 0:14a7c22dfbe8 | 278 | * |
kagelump | 0:14a7c22dfbe8 | 279 | */ |
kagelump | 0:14a7c22dfbe8 | 280 | void SlantyLine(unsigned int lX1, unsigned int lY1, unsigned int lX2,unsigned int lY2,unsigned int color); |
kagelump | 0:14a7c22dfbe8 | 281 | |
kagelump | 0:14a7c22dfbe8 | 282 | /** |
kagelump | 0:14a7c22dfbe8 | 283 | *@brief Draws a line from x,y at given degree from inner_radius to outer_radius. |
kagelump | 0:14a7c22dfbe8 | 284 | *@param x |
kagelump | 0:14a7c22dfbe8 | 285 | *@param y |
kagelump | 0:14a7c22dfbe8 | 286 | *@param inner_radius |
kagelump | 0:14a7c22dfbe8 | 287 | *@param outer_radius |
kagelump | 0:14a7c22dfbe8 | 288 | *@param color can be BLACK or WHITE |
kagelump | 0:14a7c22dfbe8 | 289 | *@return none |
kagelump | 0:14a7c22dfbe8 | 290 | * |
kagelump | 0:14a7c22dfbe8 | 291 | */ |
kagelump | 0:14a7c22dfbe8 | 292 | void DegreeLine(unsigned int x, int y,unsigned int degree,unsigned int inner_radius,unsigned int outer_radius, unsigned int color); |
kagelump | 0:14a7c22dfbe8 | 293 | |
kagelump | 0:14a7c22dfbe8 | 294 | /** |
kagelump | 0:14a7c22dfbe8 | 295 | *@brief Draw a filled rectangle |
kagelump | 0:14a7c22dfbe8 | 296 | * |
kagelump | 0:14a7c22dfbe8 | 297 | *@param Xaxis1 |
kagelump | 0:14a7c22dfbe8 | 298 | *@param Yaxis1 |
kagelump | 0:14a7c22dfbe8 | 299 | *@param Xaxis2 |
kagelump | 0:14a7c22dfbe8 | 300 | *@param Yaxis2 |
kagelump | 0:14a7c22dfbe8 | 301 | *@param color can be BLACK or WHITE |
kagelump | 0:14a7c22dfbe8 | 302 | *@return none |
kagelump | 0:14a7c22dfbe8 | 303 | * |
kagelump | 0:14a7c22dfbe8 | 304 | */ |
kagelump | 0:14a7c22dfbe8 | 305 | void FullRectangle(unsigned int Xaxis1, unsigned int Yaxis1, unsigned int Xaxis2 ,unsigned int Yaxis2,unsigned int color); |
kagelump | 0:14a7c22dfbe8 | 306 | |
kagelump | 0:14a7c22dfbe8 | 307 | /** |
kagelump | 0:14a7c22dfbe8 | 308 | Added by Ann |
kagelump | 0:14a7c22dfbe8 | 309 | Draws a filled rectangle from right to left (instead of left to right) |
kagelump | 0:14a7c22dfbe8 | 310 | **/ |
kagelump | 0:14a7c22dfbe8 | 311 | void ReverseFullRectangle(unsigned int Xaxis1, unsigned int Yaxis1, unsigned int Xaxis2 ,unsigned int Yaxis2,unsigned int color); |
kagelump | 0:14a7c22dfbe8 | 312 | |
kagelump | 0:14a7c22dfbe8 | 313 | /** |
kagelump | 0:14a7c22dfbe8 | 314 | *@brief Draw an empty rectangle |
kagelump | 0:14a7c22dfbe8 | 315 | *@param Xaxis1 |
kagelump | 0:14a7c22dfbe8 | 316 | *@param Yaxis1 |
kagelump | 0:14a7c22dfbe8 | 317 | *@param Xaxis2 |
kagelump | 0:14a7c22dfbe8 | 318 | *@param Yaxis2 |
kagelump | 0:14a7c22dfbe8 | 319 | *@param color can be BLACK or WHITE |
kagelump | 0:14a7c22dfbe8 | 320 | *@return none |
kagelump | 0:14a7c22dfbe8 | 321 | * |
kagelump | 0:14a7c22dfbe8 | 322 | */ |
kagelump | 0:14a7c22dfbe8 | 323 | void EmptyRectangle(unsigned int Xaxis1,unsigned int Yaxis1, unsigned int Xaxis2,unsigned int Yaxis2,unsigned int color); |
kagelump | 0:14a7c22dfbe8 | 324 | |
kagelump | 0:14a7c22dfbe8 | 325 | |
kagelump | 0:14a7c22dfbe8 | 326 | /** |
kagelump | 0:14a7c22dfbe8 | 327 | *@brief Draw a rectangle with round corners |
kagelump | 0:14a7c22dfbe8 | 328 | *@param Xaxis1 x-coordinate of the top left point |
kagelump | 0:14a7c22dfbe8 | 329 | *@param Yaxis1 y-coordinate of the top left point |
kagelump | 0:14a7c22dfbe8 | 330 | *@param width rectangle width |
kagelump | 0:14a7c22dfbe8 | 331 | *@param height rectangle height |
kagelump | 0:14a7c22dfbe8 | 332 | *@param radius radius of the edges |
kagelump | 0:14a7c22dfbe8 | 333 | *@param color can be BLACK or WHITE |
kagelump | 0:14a7c22dfbe8 | 334 | *@return none |
kagelump | 0:14a7c22dfbe8 | 335 | * |
kagelump | 0:14a7c22dfbe8 | 336 | */ |
kagelump | 0:14a7c22dfbe8 | 337 | void RoundRectangle(unsigned int x, unsigned int y, unsigned int width, unsigned int height, unsigned int radius, unsigned int color); |
kagelump | 0:14a7c22dfbe8 | 338 | |
kagelump | 0:14a7c22dfbe8 | 339 | |
kagelump | 0:14a7c22dfbe8 | 340 | /** |
kagelump | 0:14a7c22dfbe8 | 341 | *Draws a triangle . |
kagelump | 0:14a7c22dfbe8 | 342 | *@param |
kagelump | 0:14a7c22dfbe8 | 343 | *@param |
kagelump | 0:14a7c22dfbe8 | 344 | *@param |
kagelump | 0:14a7c22dfbe8 | 345 | *@param |
kagelump | 0:14a7c22dfbe8 | 346 | *@return none |
kagelump | 0:14a7c22dfbe8 | 347 | * |
kagelump | 0:14a7c22dfbe8 | 348 | */ |
kagelump | 0:14a7c22dfbe8 | 349 | |
kagelump | 0:14a7c22dfbe8 | 350 | void Triangle ( int topx, int topy, int rightx, int righty); |
kagelump | 0:14a7c22dfbe8 | 351 | |
kagelump | 0:14a7c22dfbe8 | 352 | |
kagelump | 0:14a7c22dfbe8 | 353 | /** |
kagelump | 0:14a7c22dfbe8 | 354 | *Draws a right angle triangle . |
kagelump | 0:14a7c22dfbe8 | 355 | *@param |
kagelump | 0:14a7c22dfbe8 | 356 | *@param |
kagelump | 0:14a7c22dfbe8 | 357 | *@param |
kagelump | 0:14a7c22dfbe8 | 358 | *@param |
kagelump | 0:14a7c22dfbe8 | 359 | *@return none |
kagelump | 0:14a7c22dfbe8 | 360 | * |
kagelump | 0:14a7c22dfbe8 | 361 | */ |
kagelump | 0:14a7c22dfbe8 | 362 | void RightTriangle ( int topx, int topy, int rightx, int righty); |
kagelump | 0:14a7c22dfbe8 | 363 | |
kagelump | 0:14a7c22dfbe8 | 364 | |
kagelump | 0:14a7c22dfbe8 | 365 | /** |
kagelump | 0:14a7c22dfbe8 | 366 | *Draws an empty circle centered a x,y with radius R and specific color. |
kagelump | 0:14a7c22dfbe8 | 367 | *@param CenterX center x coordinate |
kagelump | 0:14a7c22dfbe8 | 368 | *@param CenterY center y coordinate |
kagelump | 0:14a7c22dfbe8 | 369 | *@param Radius circle radius |
kagelump | 0:14a7c22dfbe8 | 370 | *@param color Color can be BLACK or WHITE |
kagelump | 0:14a7c22dfbe8 | 371 | *@return none |
kagelump | 0:14a7c22dfbe8 | 372 | * |
kagelump | 0:14a7c22dfbe8 | 373 | */ |
kagelump | 0:14a7c22dfbe8 | 374 | void EmptyCircle(unsigned int CenterX, unsigned int CenterY, unsigned int Radius,unsigned int color); |
kagelump | 0:14a7c22dfbe8 | 375 | |
kagelump | 0:14a7c22dfbe8 | 376 | /** |
kagelump | 0:14a7c22dfbe8 | 377 | * Circle fill Code is merely a modification of the midpoint |
kagelump | 0:14a7c22dfbe8 | 378 | * circle algorithem which is an adaption of Bresenham's line algorithm |
kagelump | 0:14a7c22dfbe8 | 379 | * http://en.wikipedia.org/wiki/Midpoint_circle_algorithm |
kagelump | 0:14a7c22dfbe8 | 380 | * http://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm |
kagelump | 0:14a7c22dfbe8 | 381 | * Adapted from arduino lib |
kagelump | 0:14a7c22dfbe8 | 382 | * |
kagelump | 0:14a7c22dfbe8 | 383 | *@param CenterX center x coordinate |
kagelump | 0:14a7c22dfbe8 | 384 | *@param CenterY center y coordinate |
kagelump | 0:14a7c22dfbe8 | 385 | *@param Radius circle radius |
kagelump | 0:14a7c22dfbe8 | 386 | *@param color Color can be BLACK or WHITE |
kagelump | 0:14a7c22dfbe8 | 387 | */ |
kagelump | 0:14a7c22dfbe8 | 388 | void FullCircle(unsigned int CenterX, unsigned int CenterY, unsigned int Radius,unsigned int color); |
kagelump | 0:14a7c22dfbe8 | 389 | |
kagelump | 0:14a7c22dfbe8 | 390 | /** |
kagelump | 0:14a7c22dfbe8 | 391 | *Draws an ellipse. |
kagelump | 0:14a7c22dfbe8 | 392 | *@param CX x coordinate of one side |
kagelump | 0:14a7c22dfbe8 | 393 | *@param CY y coordinate of one side |
kagelump | 0:14a7c22dfbe8 | 394 | *@param XRadius x coordinate of other side |
kagelump | 0:14a7c22dfbe8 | 395 | *@param YRadius y coordinate of other side |
kagelump | 0:14a7c22dfbe8 | 396 | *@param color can be BLACK or WHITE |
kagelump | 0:14a7c22dfbe8 | 397 | *@return none |
kagelump | 0:14a7c22dfbe8 | 398 | * |
kagelump | 0:14a7c22dfbe8 | 399 | * Ported the algorithm found at http://homepage.smc.edu/kennedy_john/belipse.pdf |
kagelump | 0:14a7c22dfbe8 | 400 | * |
kagelump | 0:14a7c22dfbe8 | 401 | */ |
kagelump | 0:14a7c22dfbe8 | 402 | void PlotEllipse(long CX, long CY, long XRadius,long YRadius, int color); |
kagelump | 0:14a7c22dfbe8 | 403 | void Plot4EllipsePoints(long CX,long CY, long X, long Y, int color); |
kagelump | 0:14a7c22dfbe8 | 404 | |
kagelump | 0:14a7c22dfbe8 | 405 | |
kagelump | 0:14a7c22dfbe8 | 406 | /** |
kagelump | 0:14a7c22dfbe8 | 407 | *@brief Round a double |
kagelump | 0:14a7c22dfbe8 | 408 | *@param double |
kagelump | 0:14a7c22dfbe8 | 409 | *@return value |
kagelump | 0:14a7c22dfbe8 | 410 | * |
kagelump | 0:14a7c22dfbe8 | 411 | */ |
kagelump | 0:14a7c22dfbe8 | 412 | double dfloor( double value ); |
kagelump | 0:14a7c22dfbe8 | 413 | |
kagelump | 0:14a7c22dfbe8 | 414 | |
kagelump | 0:14a7c22dfbe8 | 415 | /*****************************Bitmaps *****************************************************************/ |
kagelump | 0:14a7c22dfbe8 | 416 | |
kagelump | 0:14a7c22dfbe8 | 417 | /** |
kagelump | 0:14a7c22dfbe8 | 418 | *@brief Draws an image on screen. |
kagelump | 0:14a7c22dfbe8 | 419 | *@param PictureData 128x64 image array |
kagelump | 0:14a7c22dfbe8 | 420 | *@return none |
kagelump | 0:14a7c22dfbe8 | 421 | * |
kagelump | 0:14a7c22dfbe8 | 422 | * |
kagelump | 0:14a7c22dfbe8 | 423 | */ |
kagelump | 0:14a7c22dfbe8 | 424 | void FullScreenBMP (unsigned char *ImageData); |
kagelump | 0:14a7c22dfbe8 | 425 | |
kagelump | 0:14a7c22dfbe8 | 426 | /** |
kagelump | 0:14a7c22dfbe8 | 427 | *@brief Draw a 1-bit bitmap |
kagelump | 0:14a7c22dfbe8 | 428 | * |
kagelump | 0:14a7c22dfbe8 | 429 | *@param image struct containing img size and array |
kagelump | 0:14a7c22dfbe8 | 430 | *@param x x-coordinate |
kagelump | 0:14a7c22dfbe8 | 431 | *@param y y-coordinate |
kagelump | 0:14a7c22dfbe8 | 432 | *@param color can be BLACK or WHITE |
kagelump | 0:14a7c22dfbe8 | 433 | *@return none |
kagelump | 0:14a7c22dfbe8 | 434 | */ |
kagelump | 0:14a7c22dfbe8 | 435 | void DrawBitmap(const unsigned int * bitmap, unsigned int x, unsigned int y, unsigned int color); |
kagelump | 0:14a7c22dfbe8 | 436 | |
kagelump | 0:14a7c22dfbe8 | 437 | /** |
kagelump | 0:14a7c22dfbe8 | 438 | *@brief Static function , mplemented to read an array |
kagelump | 0:14a7c22dfbe8 | 439 | *@param ptr data array |
kagelump | 0:14a7c22dfbe8 | 440 | *@return none |
kagelump | 0:14a7c22dfbe8 | 441 | */ |
kagelump | 0:14a7c22dfbe8 | 442 | unsigned int ReadArrayData(const unsigned int* ptr); |
kagelump | 0:14a7c22dfbe8 | 443 | |
kagelump | 0:14a7c22dfbe8 | 444 | |
kagelump | 0:14a7c22dfbe8 | 445 | /*************************************Font functions **************************************/ |
kagelump | 0:14a7c22dfbe8 | 446 | |
kagelump | 0:14a7c22dfbe8 | 447 | /** |
kagelump | 0:14a7c22dfbe8 | 448 | *@brief Print a character on specified coordinates |
kagelump | 0:14a7c22dfbe8 | 449 | * |
kagelump | 0:14a7c22dfbe8 | 450 | *@param page row |
kagelump | 0:14a7c22dfbe8 | 451 | *@param col column |
kagelump | 0:14a7c22dfbe8 | 452 | *@param c integer value |
kagelump | 0:14a7c22dfbe8 | 453 | *@return none |
kagelump | 0:14a7c22dfbe8 | 454 | */ |
kagelump | 0:14a7c22dfbe8 | 455 | void Putchar (int page, int col,unsigned char c); |
kagelump | 0:14a7c22dfbe8 | 456 | |
kagelump | 0:14a7c22dfbe8 | 457 | /** |
kagelump | 0:14a7c22dfbe8 | 458 | *@brief Print a string on specified coordinates |
kagelump | 0:14a7c22dfbe8 | 459 | * |
kagelump | 0:14a7c22dfbe8 | 460 | *@param str char array |
kagelump | 0:14a7c22dfbe8 | 461 | *@param x row |
kagelump | 0:14a7c22dfbe8 | 462 | *@param y column |
kagelump | 0:14a7c22dfbe8 | 463 | *@return none |
kagelump | 0:14a7c22dfbe8 | 464 | */ |
kagelump | 0:14a7c22dfbe8 | 465 | void PutString(unsigned int x, unsigned int y,char* str); |
kagelump | 0:14a7c22dfbe8 | 466 | |
kagelump | 0:14a7c22dfbe8 | 467 | /** |
kagelump | 0:14a7c22dfbe8 | 468 | *@brief Print a float on specified coordinates |
kagelump | 0:14a7c22dfbe8 | 469 | * |
kagelump | 0:14a7c22dfbe8 | 470 | *@param val float value |
kagelump | 0:14a7c22dfbe8 | 471 | *@param x row |
kagelump | 0:14a7c22dfbe8 | 472 | *@param y column |
kagelump | 0:14a7c22dfbe8 | 473 | *@return none |
kagelump | 0:14a7c22dfbe8 | 474 | */ |
kagelump | 0:14a7c22dfbe8 | 475 | void PrintFloat(float val, unsigned int x,unsigned int y); |
kagelump | 0:14a7c22dfbe8 | 476 | |
kagelump | 0:14a7c22dfbe8 | 477 | /** |
kagelump | 0:14a7c22dfbe8 | 478 | *@brief Print an integer on specified coordinates |
kagelump | 0:14a7c22dfbe8 | 479 | * |
kagelump | 0:14a7c22dfbe8 | 480 | *@param val integer value |
kagelump | 0:14a7c22dfbe8 | 481 | *@param x row |
kagelump | 0:14a7c22dfbe8 | 482 | *@param y column |
kagelump | 0:14a7c22dfbe8 | 483 | *@return none |
kagelump | 0:14a7c22dfbe8 | 484 | */ |
kagelump | 0:14a7c22dfbe8 | 485 | void PrintInteger(int val,unsigned int x,unsigned int y); |
kagelump | 0:14a7c22dfbe8 | 486 | |
kagelump | 0:14a7c22dfbe8 | 487 | |
kagelump | 0:14a7c22dfbe8 | 488 | /** |
kagelump | 0:14a7c22dfbe8 | 489 | *@brief Select a specific font |
kagelump | 0:14a7c22dfbe8 | 490 | * |
kagelump | 0:14a7c22dfbe8 | 491 | *@param font font array |
kagelump | 0:14a7c22dfbe8 | 492 | *@param color font color , can be BLACK or WHITE |
kagelump | 0:14a7c22dfbe8 | 493 | *@param callback function pointer to load font |
kagelump | 0:14a7c22dfbe8 | 494 | *@return none |
kagelump | 0:14a7c22dfbe8 | 495 | */ |
kagelump | 0:14a7c22dfbe8 | 496 | void SelectFont(unsigned int* font,unsigned int color, FontCallback callback); |
kagelump | 0:14a7c22dfbe8 | 497 | |
kagelump | 0:14a7c22dfbe8 | 498 | |
kagelump | 0:14a7c22dfbe8 | 499 | /** |
kagelump | 0:14a7c22dfbe8 | 500 | *@brief Print a character |
kagelump | 0:14a7c22dfbe8 | 501 | * |
kagelump | 0:14a7c22dfbe8 | 502 | *@param c char |
kagelump | 0:14a7c22dfbe8 | 503 | *@return none |
kagelump | 0:14a7c22dfbe8 | 504 | */ |
kagelump | 0:14a7c22dfbe8 | 505 | int PrintChar(char c); |
kagelump | 0:14a7c22dfbe8 | 506 | |
kagelump | 0:14a7c22dfbe8 | 507 | |
kagelump | 0:14a7c22dfbe8 | 508 | /** |
kagelump | 0:14a7c22dfbe8 | 509 | *@brief Print a character string |
kagelump | 0:14a7c22dfbe8 | 510 | * |
kagelump | 0:14a7c22dfbe8 | 511 | *@param str char string |
kagelump | 0:14a7c22dfbe8 | 512 | *@return none |
kagelump | 0:14a7c22dfbe8 | 513 | */ |
kagelump | 0:14a7c22dfbe8 | 514 | void PrintString(char* str); |
kagelump | 0:14a7c22dfbe8 | 515 | |
kagelump | 0:14a7c22dfbe8 | 516 | |
kagelump | 0:14a7c22dfbe8 | 517 | /** |
kagelump | 0:14a7c22dfbe8 | 518 | *@brief Print a number |
kagelump | 0:14a7c22dfbe8 | 519 | * |
kagelump | 0:14a7c22dfbe8 | 520 | *@param n number |
kagelump | 0:14a7c22dfbe8 | 521 | *@return none |
kagelump | 0:14a7c22dfbe8 | 522 | */ |
kagelump | 0:14a7c22dfbe8 | 523 | void PrintNumber(long n); |
kagelump | 0:14a7c22dfbe8 | 524 | |
kagelump | 0:14a7c22dfbe8 | 525 | |
kagelump | 0:14a7c22dfbe8 | 526 | private: |
kagelump | 0:14a7c22dfbe8 | 527 | BusInOut DB; |
kagelump | 0:14a7c22dfbe8 | 528 | DigitalOut RST; |
kagelump | 0:14a7c22dfbe8 | 529 | DigitalOut DI; |
kagelump | 0:14a7c22dfbe8 | 530 | DigitalOut RW; |
kagelump | 0:14a7c22dfbe8 | 531 | DigitalOut E; |
kagelump | 0:14a7c22dfbe8 | 532 | DigitalInOut CS2; |
kagelump | 0:14a7c22dfbe8 | 533 | DigitalInOut CS1; |
kagelump | 0:14a7c22dfbe8 | 534 | bool Inverted; |
kagelump | 0:14a7c22dfbe8 | 535 | |
kagelump | 0:14a7c22dfbe8 | 536 | LCDCoord Coord; |
kagelump | 0:14a7c22dfbe8 | 537 | FontCallback FontRead ; |
kagelump | 0:14a7c22dfbe8 | 538 | unsigned int FontColor; |
kagelump | 0:14a7c22dfbe8 | 539 | unsigned int* Font; |
kagelump | 0:14a7c22dfbe8 | 540 | unsigned int color; |
kagelump | 0:14a7c22dfbe8 | 541 | |
kagelump | 0:14a7c22dfbe8 | 542 | |
kagelump | 0:14a7c22dfbe8 | 543 | }; |
kagelump | 0:14a7c22dfbe8 | 544 | |
kagelump | 0:14a7c22dfbe8 | 545 | |
kagelump | 0:14a7c22dfbe8 | 546 | #endif |