Adapted from Peter Dresche's original for Waveshare 2.8inch TFT Touch Shield Board and Mbed 6. RGB order reversed by changing reg 16 commands, spi write code adjusted as there is no reset pin but there is data command pin. Wait commands changed for new thread_sleep style, Stream class explicitly included. Library to control a QVGA TFT connected to SPI. You can use printf to print text The lib can handle different fonts, draw lines, circles, rect and bmp
TextDisplay.cpp
- Committer:
- jhd25
- Date:
- 2020-07-06
- Revision:
- 26:231a28b27a76
- Parent:
- 20:275bf616ceb7
File content as of revision 26:231a28b27a76:
/* mbed TextDisplay Display Library Base Class * Copyright (c) 2007-2009 sford * Released under the MIT License: http://mbed.org/license/mit */ #include "TextDisplay.h" TextDisplay::TextDisplay(const char *name) : Stream(name){ _row = 0; _column = 0; if (name == NULL) { _path = NULL; } else { _path = new char[strlen(name) + 2]; sprintf(_path, "/%s", name); } } int TextDisplay::_putc(int value) { if(value == '\n') { _column = 0; _row++; if(_row >= rows()) { _row = 0; } } else { character(_column, _row, value); _column++; if(_column >= columns()) { _column = 0; _row++; if(_row >= rows()) { _row = 0; } } } return value; } // crude cls implementation, should generally be overwritten in derived class void TextDisplay::cls() { locate(0, 0); for(int i=0; i<columns()*rows(); i++) { putc(' '); } } void TextDisplay::locate(int column, int row) { _column = column; _row = row; } int TextDisplay::_getc() { return -1; } void TextDisplay::foreground(uint16_t colour) { _foreground = colour; } void TextDisplay::background(uint16_t colour) { _background = colour; } bool TextDisplay::claim (FILE *stream) { if ( _path == NULL) { fprintf(stderr, "claim requires a name to be given in the instantioator of the TextDisplay instance!\r\n"); return false; } if (freopen(_path, "w", stream) == NULL) { // Failed, should not happen return false; } // make sure we use line buffering setvbuf(stdout, NULL, _IOLBF, columns()); return true; }