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)

Committer:
WiredHome
Date:
Tue Feb 26 19:52:57 2019 +0000
Revision:
167:8aa3fb2a5a31
Parent:
141:2ec78a50dc98
Child:
182:8832d03a2a29
Documentation update to the script in the Fonts/FontMods.h file to improve the understanding of what it does.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
WiredHome 167:8aa3fb2a5a31 1 // mbed TextDisplay Display Library Base Class
WiredHome 167:8aa3fb2a5a31 2 // Copyright © 2007-2009 sford
WiredHome 167:8aa3fb2a5a31 3 // Released under the MIT License: http://mbed.org/license/mit
WiredHome 19:3f82c1161fd2 4
dreschpe 0:de9d1462a835 5 #include "TextDisplay.h"
dreschpe 0:de9d1462a835 6
WiredHome 75:ca78388cfd77 7 //#define DEBUG "Text"
WiredHome 29:422616aa04bd 8 // ...
WiredHome 29:422616aa04bd 9 // INFO("Stuff to show %d", var); // new-line is automatically appended
WiredHome 29:422616aa04bd 10 //
WiredHome 29:422616aa04bd 11 #if (defined(DEBUG) && !defined(TARGET_LPC11U24))
WiredHome 29:422616aa04bd 12 #define INFO(x, ...) std::printf("[INF %s %3d] "x"\r\n", DEBUG, __LINE__, ##__VA_ARGS__);
WiredHome 29:422616aa04bd 13 #define WARN(x, ...) std::printf("[WRN %s %3d] "x"\r\n", DEBUG, __LINE__, ##__VA_ARGS__);
WiredHome 29:422616aa04bd 14 #define ERR(x, ...) std::printf("[ERR %s %3d] "x"\r\n", DEBUG, __LINE__, ##__VA_ARGS__);
WiredHome 29:422616aa04bd 15 #else
WiredHome 29:422616aa04bd 16 #define INFO(x, ...)
WiredHome 29:422616aa04bd 17 #define WARN(x, ...)
WiredHome 29:422616aa04bd 18 #define ERR(x, ...)
WiredHome 29:422616aa04bd 19 #endif
WiredHome 29:422616aa04bd 20
WiredHome 19:3f82c1161fd2 21 TextDisplay::TextDisplay(const char *name) : Stream(name)
WiredHome 19:3f82c1161fd2 22 {
dreschpe 0:de9d1462a835 23 _row = 0;
dreschpe 0:de9d1462a835 24 _column = 0;
dreschpe 0:de9d1462a835 25 if (name == NULL) {
dreschpe 0:de9d1462a835 26 _path = NULL;
dreschpe 0:de9d1462a835 27 } else {
WiredHome 141:2ec78a50dc98 28 int len = strlen(name) + 2;
WiredHome 141:2ec78a50dc98 29 _path = new char[len];
WiredHome 141:2ec78a50dc98 30 snprintf(_path, len, "/%s", name);
dreschpe 0:de9d1462a835 31 }
dreschpe 0:de9d1462a835 32 }
WiredHome 19:3f82c1161fd2 33
WiredHome 104:8d1d3832a215 34 //TextDisplay::~TextDisplay()
WiredHome 104:8d1d3832a215 35 //{
WiredHome 104:8d1d3832a215 36 // delete [] _path;
WiredHome 104:8d1d3832a215 37 //}
WiredHome 103:7e0464ca6c5c 38
WiredHome 19:3f82c1161fd2 39 int TextDisplay::_putc(int value)
WiredHome 19:3f82c1161fd2 40 {
WiredHome 29:422616aa04bd 41 INFO("_putc(%d)", value);
dreschpe 0:de9d1462a835 42 if(value == '\n') {
dreschpe 0:de9d1462a835 43 _column = 0;
dreschpe 0:de9d1462a835 44 _row++;
WiredHome 47:d96a09269f91 45 if(_row >= rows()) {
dreschpe 0:de9d1462a835 46 _row = 0;
dreschpe 0:de9d1462a835 47 }
dreschpe 0:de9d1462a835 48 } else {
dreschpe 0:de9d1462a835 49 character(_column, _row, value);
dreschpe 0:de9d1462a835 50 _column++;
dreschpe 0:de9d1462a835 51 if(_column >= columns()) {
dreschpe 0:de9d1462a835 52 _column = 0;
dreschpe 0:de9d1462a835 53 _row++;
WiredHome 47:d96a09269f91 54 if(_row >= rows()) {
dreschpe 0:de9d1462a835 55 _row = 0;
dreschpe 0:de9d1462a835 56 }
dreschpe 0:de9d1462a835 57 }
dreschpe 0:de9d1462a835 58 }
dreschpe 0:de9d1462a835 59 return value;
dreschpe 0:de9d1462a835 60 }
dreschpe 0:de9d1462a835 61
dreschpe 0:de9d1462a835 62 // crude cls implementation, should generally be overwritten in derived class
WiredHome 61:8f3153bf0baa 63 RetCode_t TextDisplay::cls(uint16_t layers)
WiredHome 19:3f82c1161fd2 64 {
WiredHome 29:422616aa04bd 65 INFO("cls()");
dreschpe 0:de9d1462a835 66 locate(0, 0);
dreschpe 0:de9d1462a835 67 for(int i=0; i<columns()*rows(); i++) {
dreschpe 0:de9d1462a835 68 putc(' ');
dreschpe 0:de9d1462a835 69 }
WiredHome 19:3f82c1161fd2 70 return noerror;
dreschpe 0:de9d1462a835 71 }
dreschpe 0:de9d1462a835 72
WiredHome 37:f19b7e7449dc 73 RetCode_t TextDisplay::locate(textloc_t column, textloc_t row)
WiredHome 19:3f82c1161fd2 74 {
WiredHome 29:422616aa04bd 75 INFO("locate(%d,%d)", column, row);
dreschpe 0:de9d1462a835 76 _column = column;
dreschpe 0:de9d1462a835 77 _row = row;
WiredHome 19:3f82c1161fd2 78 return noerror;
dreschpe 0:de9d1462a835 79 }
dreschpe 0:de9d1462a835 80
WiredHome 19:3f82c1161fd2 81 int TextDisplay::_getc()
WiredHome 19:3f82c1161fd2 82 {
dreschpe 0:de9d1462a835 83 return -1;
dreschpe 0:de9d1462a835 84 }
WiredHome 19:3f82c1161fd2 85
WiredHome 33:b6b710758ab3 86 RetCode_t TextDisplay::foreground(uint16_t color)
WiredHome 19:3f82c1161fd2 87 {
WiredHome 37:f19b7e7449dc 88 //INFO("foreground(%4X)", color);
WiredHome 33:b6b710758ab3 89 _foreground = color;
WiredHome 19:3f82c1161fd2 90 return noerror;
dreschpe 0:de9d1462a835 91 }
dreschpe 0:de9d1462a835 92
WiredHome 33:b6b710758ab3 93 RetCode_t TextDisplay::background(uint16_t color)
WiredHome 19:3f82c1161fd2 94 {
WiredHome 37:f19b7e7449dc 95 //INFO("background(%4X)", color);
WiredHome 33:b6b710758ab3 96 _background = color;
WiredHome 19:3f82c1161fd2 97 return noerror;
dreschpe 0:de9d1462a835 98 }
dreschpe 0:de9d1462a835 99
WiredHome 29:422616aa04bd 100 bool TextDisplay::claim(FILE *stream)
WiredHome 19:3f82c1161fd2 101 {
dreschpe 0:de9d1462a835 102 if ( _path == NULL) {
WiredHome 19:3f82c1161fd2 103 fprintf(stderr, "claim requires a name to be given in the instantiator of the TextDisplay instance!\r\n");
dreschpe 0:de9d1462a835 104 return false;
dreschpe 0:de9d1462a835 105 }
dreschpe 0:de9d1462a835 106 if (freopen(_path, "w", stream) == NULL) {
WiredHome 29:422616aa04bd 107 return false; // Failed, should not happen
dreschpe 0:de9d1462a835 108 }
dreschpe 0:de9d1462a835 109 // make sure we use line buffering
dreschpe 0:de9d1462a835 110 setvbuf(stdout, NULL, _IOLBF, columns());
dreschpe 0:de9d1462a835 111 return true;
WiredHome 19:3f82c1161fd2 112 }
WiredHome 33:b6b710758ab3 113